在标准ML部分和?(Partial sum in Standard ML?)

2019-08-07 05:59发布

进出口新的函数式编程和我有一个任务来计算列表的部分和。 例如 - PSUM [1,1,1,1,1]。 VAL它= [1,2,3,4,5]:整数列表

这里是我到目前为止的代码。 然而,在功能psum2 [L]我不知道如何去通过每一个值,并把它们加起来,所以我只是打印清单。

fun psum2(L) : int list = 
   if L=nil then []
   else L;

fun pSum(L) : int list = 
   psum2(L);

exception Empty_List;

psum([2,3,4]);

Answer 1:

你的问题是有点宽,但这里的总结列表的一种方式。 也许你可以使其适应你的目的:

fun sum [] = 0
  | sum (h::t) = h + sum t


文章来源: Partial sum in Standard ML?