Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Maxima:将函数累计应用于列表';s原子_List_Maxima - Fatal编程技术网

List Maxima:将函数累计应用于列表';s原子

List Maxima:将函数累计应用于列表';s原子,list,maxima,List,Maxima,有没有一种方法可以将函数累积应用于列表的每个原子?例如: wishedFunction("+",[1,2,4,7,3]) 将计算((1+2)+4)+7)+3,并因此返回17 换句话说,我正在寻找一个最大值,相当于 我已经阅读了map()和scanmap()函数的文档,但它们的行为方式不同 有什么建议吗?看起来像是lreduce,而朋友(rreduce,xreduce,tree\u reduce)并没有按你想要的方式行事。我不知道有哪个函数能做到这一点;也许你可以为它输入一个功能请求。见: 这里

有没有一种方法可以将函数累积应用于列表的每个原子?例如:

wishedFunction("+",[1,2,4,7,3])
将计算
((1+2)+4)+7)+3,并因此返回
17

换句话说,我正在寻找一个最大值,相当于

我已经阅读了
map()
scanmap()
函数的文档,但它们的行为方式不同


有什么建议吗?

看起来像是
lreduce
,而朋友(
rreduce
xreduce
tree\u reduce
)并没有按你想要的方式行事。我不知道有哪个函数能做到这一点;也许你可以为它输入一个功能请求。见:

这里有一个函数可以做到这一点。免责声明:我没有想太多

(%i41) foo (f, L) := 
         block ([x0 : first (L)],
         cons (first (L),
               makelist (x0 : f(x0, x), x, rest (L)))) $
(%i42) foo (g, [1,2,3,4]);
(%o42)         [1, g(1, 2), g(g(1, 2), 3), g(g(g(1, 2), 3), 4)]
(%i43) foo ("+", [1,2,3,4]);
(%o43)                           [1, 3, 6, 10]

实际上,您正在寻找的确实是一个内置的
reduce
函数(
lreduce
rreduce
xreduce
tree\u reduce


对不起,我误解了你的问题。我想你们需要一个函数,它返回一个包含累加部分结果的列表。显然这是不正确的。很抱歉造成混淆。

谢谢您的回答:我刚刚按照您的建议在sourceforge上添加了一张票证。
(%i1) xreduce ("+", [1,2,4,7,3]);
(%o1)                                 17