next up previous
Next: 8.2 Call/CCの例 Up: 8 Continuation(継続) Previous: 8 Continuation(継続)

8.1 Call/CC

Call/CC(call-with-current-continuation)という関数がSchemeにあります. これは,1つの引数をとる通常の関数です. catchやthrowのようなスペシャルフォームではありません. Call/CCの引数に渡されるものは1つの引数をとる手続き(computation)です. Call/CCはその手続き(computation)を呼び出し,computationの実行結果を Call/CCの値として返します.そして,このcomputationの引数にはCall/CCを 呼び出した時点の次からの計算を継続しようという手続き (current-continuation)が与えられます.このcurrent-continuationは引数を ひとつとる手続きです.もし,computationの手続きの中で,この current-continuationが実行されると,計算は自動的に,call/ccを呼び出し た時にもどり,current-continuation手続きの引数を計算した結果がCall/CC の返り値となります. このような機構があれば,catch, throwのような機構が実現できます.

generated through LaTeX2HTML. M.Inaba 平成18年5月6日