let rec ddr l =
let (r,_) =
List.fold_left (fun (a_l, a_i) x ->
((a_i + x) :: a_l , a_i+x))
([],0) l in
List.rev r我还没有学习过List.fold_left或List.rev,但是上面的代码解决了我的任务,那就是:编写一个函数
[1;2;3] -> [1; 3; 6]
[4, 5] -> [4; 9]发布于 2019-09-19 05:01:56
这看起来像是我这学期教的课程中的家庭作业问题!所以我不会给出解决方案,但我会给你一个提示。
假设您正在处理一个列表[1;2;3;4],并且您已经到达了3。如果您知道前面元素的部分和是什么,那么计算新的部分和就很容易了。尝试找到一种方法来将部分和带到目前为止,也许是通过使用辅助函数。
https://stackoverflow.com/questions/57965296
复制相似问题