継続は力なり(改訂)

先のエントリーに超重要な一言が抜けていたので改訂。

  • -

プログラム言語Schemeには「継続」という超根本的エッセンスがあって、理解する、しないでは、それが実用かどうかは別として、かなり気分が違います。
継続を理解することはなんか開眼に近いです。

  • -

プログラムの話はやめましょう。
「継続」のエッセンスは

・前の仕事をしている人Aが、
・次の仕事をする人Bに仕事を頼むとき、
・「その仕事の結果はこの人Cに返してね」ということまで常にBに頼む
・「その仕事の結果はこの人Cに返してね」を「継続」といったりする

ことだったりします。
このやり方のいいところは、

・多くの人が共通でやるべき仕事をやっているとき、仕事をBに集約できる
・Cは結果の返し先(継続)を知っているので仕事の結果をそこ(継続)に返したらおしまい
・仕事の返し先(継続)を決めるのでは、Cではなく、「あくまでB」
・「仕事の返し先(継続)はBである必要がない」!
・「仕事の返し先(継続)はBが自由に決めることができる!」
・「仕事の返し先(継続)はBが常にに決めなくてはならない!」

ということだったり。
実仕事でこれをやったら、すごいことになりそうだなぁと思った次第。
個人的に開眼。

・何でもかんでも仕事は継続の連続
・だから「継続は力なり」

って誰か偉い人悟ってくださいぺこり(だれにはなしとるんじゃ!)
私には悟らせるのは無理!
プログラムの話に戻して・・・
プログラムでいう「継続」は次をみてね。
「今そこにある継続」
http://www.shiro.dreamhost.com/scheme/docs/cont-j.html
たぶん、ウニになるでしょう。
一言でいえば、

・プログラムフローは継続の連続
Schemeでは継続(つまり「その時点での次の仕事」)をオブジェクト化する(つまり変数に代入したり配列に格納できたりリストの要素にする)ことができたりして、すげー!
・そんな言語みたこともないし(Scheme以外の実装は実際なさそう)、実際どう実装すんだよ!
できたところで何か意味があるんかい!(実用ではないけど、セマンティクスが超きれいなんだなぁ)

一応サブセットながら、むかーし(といってもそんなに昔ではないが)、Cを忘れないように私も作ったことがあるよーん。(自慢)
http://www.d2.dion.ne.jp/~ujiie/
から
「Beautiful Schemer」
ってところを見てみて。
単なる独りよがりの世界がそこにはあるよ!
あーあ。
おしまい。