有关 Continuation

把 continuation 作为 first class 进行操作是 Scheme 和其它语 言很大的不同。

Scheme 提供了 call-with-current-continuation(call/cc) 处理 continuation.

Continuation 的用途

Scheme 可以把当前的 continuations 作为一个函数保存起来,当以 后调用这个函数的时候,就可以回到函数执行中的任何一个时刻。这 是非常强大的特点,我们可以利用这个特点实现非常复杂的控制结构, 人工智能的分支剪切,回溯,线程,coroutines( CoroutineProblem ) , ...

现在举一些我见过的例子:

TreeWalkerGenerator --- 在递归搜索的途中传递中间结果给另一个函数。

SchemeAmb --- 神奇的 amb 操作符。

ContinuationPassingStyle -- Continuation Passing Style (CPS)