returnを関数と思ってみる話
要旨: 「"call/cc" って難しいので、 継続のプリミティブは "return" ということにしよう。特に手続き型言語では」
実際、"first-class return" があれば first-class continuation でできることは全てできます。 Scheme, Ruby 等で継続を取り出すプリミティブである call/cc がfunction callcc(f) { return( f(return) ) }こう実装できるので。
http://www.kmonos.net/wlog/95.html#_1109090307
そうか、returnを評価すると継続が得られるとすれば、callcc(f)は、f(return)と同じか。