Я хочу сделать что-то вроде этого:Добавить предыдущий элемент для каждого элемента в списке в OCaml
Если у меня есть следующий список:
[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' :-) – Bergi