Next: 8.2 Call/CCの例
Up: 8 Continuation(継続)
Previous: 8 Continuation(継続)
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日