継続

トランポリン

gotoが使えない言語での末尾呼出し最適化はどうするのかと思っていたらこれを発見。 ベース言語が末尾呼出し最適化を保証してくれない場合によく使う手としてトランポリンがあります。 各関数を、結果を返すのではなく、その関数の継続手続きを返すように書…

returnを関数と思ってみる話

要旨: 「"call/cc" って難しいので、 継続のプリミティブは "return" ということにしよう。特に手続き型言語では」 実際、"first-class return" があれば first-class continuation でできることは全てできます。 Scheme, Ruby 等で継続を取り出すプリミテ…