【发布时间】:2017-03-05 13:43:59
【问题描述】:
我想做这样的事情:
如果我有以下列表:
[1;2;3;4;5]
我想得到这个:
[1;3;6;10;15] -> result of doing [0+1=1; 1+2=3; 3+3=6; 6+4=10; 10+5=15]
我有以下代码,但它不是尾递归
let sumsum l = List.fold_right (fun x t -> x::List.map ((+) x) t) l [];;
我被困在尾递归上,有人可以帮助我吗?
不使用 List.fold_right、List.fold_left 和 List.map 可以做到吗?
谢谢
【问题讨论】:
-
您正在寻找
scan:-)
标签: list recursion functional-programming ocaml tail-recursion