連鎖性言語/継続

継続 (continuation) とは、もともと Scheme が備えていた特徴です。継続については、理解するのが難しく、しばしば不可解であるとさえ言われます。しかし、連鎖性言語では、継続を非常に簡単に説明することができます。すなわち継続とは、スタックのスナップショットのことです。Factor での継続とは、複数のスロット (1 つのスロットが各スタックに対応) を持つタプルのインスタンスです。

TUPLE: continuation data call retain name catch ;

継続を具象化すると、スタックのコピーが作成され、これをリフレクションすると、保存されたコピーが復元されます。Factor において、例外処理、コルーチン (coroutine)、協調スレッド、およびバックトラッキングを実装するのに必要なプリミティブはこれだけです。

This revision created on Sat, 3 Jan 2009 01:15:02 by slava