尽管它已经是尾递归了,但看到它的 CPS 版本仍然很有趣。
这是标准的左折叠:
let rec myFoldLeft f acc list =
match list with
| [] -> acc
| h :: tl -> myFoldLeft f (f h acc) tl
;;
我正在使用 OCaml 来实现这个
一个有趣的问题,这是将 Fold_left 转换为 CPS 的正确方法
'''let rec myFoldLeft f acc 列表延续 = 匹配列表与 | [] -> 继续 acc | h :: tl -> 延续 myFoldLeft f (f h acc) tl (Fun.id) ;;'''