我一直试图绕着我的头fold_left
和fold_right
。作为实践,我一直在尝试重写很多函数fold_left
并fold_right
加强我的知识。例如,在查找列表的平均值时,我会使用折叠计算列表的总和和长度。
let sum_l xs = List.fold_left (fun x y -> x + y) 0 xs;;
let len_l xs = List.fold_left (fun x _ -> x + 1) 0 xs;;
然后我会继续寻找平均值。这是我的问题。是否可以将这两个值合二为一fold_left
?我应该如何编写匿名函数?谢谢!