我正在研究 Oleg 和 Asai 的“for dummies”论文的分隔延续(http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf),但本文使用移位/重置形式代替Oleg 的 delimcc 中可用的提示内容。所以我有几个问题:
首先,什么是提示?又为什么是传中等shift
功能呢?知道什么是 subcont 也很好,但我愿意跳过它,因为我只是想通过论文。此外,它们之间有什么区别shift
以及它们在论文中shift0
如何对应shift
。
另外,reset
delimcc 里有什么?我的直觉告诉我,new_prompt
并且push_prompt
以某种方式对应于reset
. 但我也需要在这里澄清一下。
编辑:我能够从论文中翻译一个简单的例子,我的直觉证明是正确的。但是,我想对差异进行真正的解释,以及为什么 delimcc 是这样的。这是两个版本以防万一有人感兴趣
纸:
reset (fun () -> 3 + shift (fun _ -> 5 * 2) - 1)
脱脂:
let _ = let open Delimcc in
let np = new_prompt () in
push_prompt np (fun () -> 3 + (shift np (fun _ -> 5 * 2)) - 1)