なんでも継続プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。
すごいうまい説明だな~。 ちょっと一般化して、「コンピュータの世界の概念には禅問答のようなものがある」っていうのは使いやすいかもなあ。
プログラムの勉強を始めた時に感じた、「ホントにそんなわけわからん言い方しなけりゃ説明できないものなんかい!」という感情は禅問答にイラッとするのと同じ種類のものだったのか。
再帰、オブジェクト指向、モナド、継続・・・
わかってみるとそうとしか説明しようがないように思えるのに、理解する前は禅問答にしか見えない。
ではそういう種類の概念を説明するにはどうするのが一番の早道なのか。 引用先を見ていると↓こういうのがいいのかもと思いました。
- 対象を直じゃなくて、それをあらわすモデルの図柄的なディテールを説明する。(四角があって、三角があってとか)
- そのモデルの図柄を頭にイメージさせながら、本筋の対象の説明をする。
たぶん、頭の中にグラフィカルなモデルのイメージを描けていると説明がすんなり入るんじゃないだろうか。一端理解した後は、その単語を聞いただけで頭にパッとその絵が浮かんで消すことが出来ないから理解してない人の気持ちが理解できない。
↓こういう絵のディテールを単に説明する。
スタック:
チューリングマシン:
要するに何が言いたいかというと、
誰かモナドと継続を俺にわかるように説明して!!!!