对这一点感到非常困惑,我通常使用折叠功能没有任何问题,但现在我似乎无法让它起作用,我找不到原因。
L.fold_left(fun (a,b,c) acc -> if !x != 9 then (x:= !x+1; (a,b,c)::acc)else acc) list[];;
我也尝试过1 :: acc,但它也不起作用。
答案 0 :(得分:2)
请注意参数的oder:fold_left期望一个函数,其中第一个参数是累加器(...有些累加器是"左"参数),而fold_right需要一个函数累加器是第二个(...累加器在右边)。
所以只需编写fun acc (a,b,c)
而不是fun (a,b,c)
acc,您的代码就会编译。