我正在call/ccRacket 中按照论文Continuations by example: Exceptions, time-traveling search, generators, threads, and coroutines 1学习。
该论文提到,最有利的 API 是call/cc通过提供一个过程派生而来的lambda (cc) (cc cc)。我理解这个特定call/cc的调用将当前的延续一等对象返回给主程序。
在下面的示例中,本文将所有 this 称为(right-now).
我看到的是,在同一个示例中cc,上述call/cc调用返回的对象总是在之后通过将其应用于自身来运行。这就是我不明白的。
我没有看到 value 有什么特别之处cc,所以我尝试用(cc ()), or (cc (lambda () ())), 甚至(cc "whatever")and来启动它(cc)。没有任何乐趣:显然,延续只需要该应用程序自己才能开始运行。
这是为什么?有什么例子可以清楚地说明运行 cc 的独特性(cc cc)?