現在、私たちにとって、プログラミングというのは「変数に値を代入して更新していく」モデルが常に頭の中にあるように思う。これは、物理的な計算機がそういう風にできている以上、しかたが無いことかもしれないが、一番最初に学ぶプログラミング言語の影響が強いようにも思える。CとかRubyとか、私だとVB6とか、ね。計算機というものを、ものすごく原始的な感覚では、テープがあってそのテープの内容を更新していくことで計算を行う、チューリングマシンだと思っているわけ。

しかし、チューリングマシンと等価な計算モデルというのは、いくつかある。ラムダ計算とか、帰納関数とか。そこで気になるのは、もしも計算機の感覚的な理解がラムダ計算な人がいたら、その人にはどういう風に世界が見えるのだろう、ということ。その人が、将来代入や配列を知ったとき、どう思うのか、ということ。

ある程度賢くて、ある程度込み入った概念を理解できる程度に大人で、しかし計算機やプログラミングの物理的な構成については一切イメージを持っていない人、を捕まえてきて、いきなりラムダ計算からプログラミングを教えてみる、というのがやってみたい。現実のプログラミング言語で一番近いのは、Haskellかなぁ(Cleanも?)。Lispはlazyじゃないのでダメ。