CPS中fold_left怎么写?

问题描述 投票:0回答:1

尽管它已经是尾递归了,但看到它的 CPS 版本仍然很有趣。

这是标准的左折叠:

let rec myFoldLeft f acc list =
  match list with
  | [] -> acc
  | h :: tl -> myFoldLeft f (f h acc) tl
;;

我正在使用 OCaml 来实现这个

algorithm functional-programming ocaml
1个回答
0
投票

一个有趣的问题,这是将 Fold_left 转换为 CPS 的正确方法

'''let rec myFoldLeft f acc 列表延续 = 匹配列表与 | [] -> 继续 acc | h :: tl -> 延续 myFoldLeft f (f h acc) tl (Fun.id) ;;'''

© www.soinside.com 2019 - 2024. All rights reserved.