我是一名新手,正在尝试编写一个延续传递风格的函数,但是不太清楚需要将哪个值传递到附加参数 k 中。
例如,我可以编写一个递归函数,如果列表中的所有元素都是偶数,则返回 true,否则返回 false。
代码如下:
let rec even list = ....
在 CPS 中,我知道我需要添加一个参数来传递函数,就像这样:
let rec evenk list k = ....
但是我不知道如何处理这个k以及它的确切作用。
例如对于这个偶函数,环境看起来像:
val evenk : int list -> (bool -> ’a) -> ’a = <fun>
evenk [4; 2; 12; 5; 6] (fun x -> x) (* output should give false *)