2015-04-02 43 views

回答

2

你正在寻找其实什么确实是一个内置reduce功能(lreducerreducexreducetree_reduce)。

(%i1) xreduce ("+", [1,2,4,7,3]); 
(%o1)         17 

对不起,我误解了你的问题。我在想,你想要一个函数返回一个列表与积累的部分结果。显然这是不正确的。对困惑感到抱歉。

2

看起来像lreduce和朋友(rreduce,xreduce,tree_reduce)不按照你想要的方式行事。我不知道这样做的功能;也许你可以输入一个功能请求。请参阅:https://sourceforge.net/p/maxima/feature-requests/

这是一个功能。免责声明:我没有想太多。

(%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] 
+0

感谢您的回答:我刚刚在您的建议中在sourceforge上添加了一张票。 – 2015-04-03 07:49:33

相关问题