我是函数式编程的新手,我有一个用于计算列表的部分和的赋值。例如。 - psum [1,1,1,1,1]; val it = [1,2,3,4,5]:int list
到目前为止,这是我的代码。但是我的函数只是按原样返回列表。
fun ppsum2([])=[]
| ppsum2(x::L) = x::ppsum2(L);
exception Empty_List;
fun psum(L) : int list =
if L=nil then raise Empty_List
else psum2(L);
psum([2,3,4]);
答案 0 :(得分:1)
由于这看起来像家庭作业,我希望这很简单:
fun psum2 [] total = []
| psum2 (h::t) total = (total+h) :: psum2 t (total+h)
fun psum lst = psum2 lst 0
答案 1 :(得分:1)
您可以查找Haskells scanl1
函数的源代码,并将其转换为ML。
这样,你不会学习函数式编程,而是学习媒体能力。