English | Japanese

『計算機プログラムの構造と解釈』について

最終更新日: 2000-12-02 (公開日: 2000-12-02)

ちょっと感傷的。「今年」は 2000年のこと。


目次

ことはじめ

今年の4月に『 計算機プログラムの構造と解釈 』(SICP)を知った。これはす ごい本である。MITの入門コース用の教科書らしいのだが、僕にとっ ては難しい (一応は情報科学が専門の大学院生なんだが)。が、難 しい以上に楽しい。本物の計算機科学を感じる。perl だとか CGI だとか、くだらんことをやっていないで、もっと早く読むべきだっ た。

この本では、プログラミング言語として Lisp の 1つの方言である Scheme を採用している。僕は Lisp を長い間、敬遠してきた。あ んな括弧の多い言語、 IQの高い人間じゃないと理解できないに違 いない、そもそも実用性がないんじゃないか、と思っていた。が、 やり始めてみると、すぐに病みつきになった。リスト構造の単純さ、 lambda 式の考え方、そして、リストと lambda 式 の組み合わせに よる表現力。限りなく高い自由度。なんでこんなにすごいんだ? 何 より楽しい。括弧については bit 2000 年 5月号 に竹内郁雄氏の 言葉がある。

弟子が尋ねた。「先生、私は先生がカッコをまるで魔術師の ように扱っているのを常々敬服しています。どうすれば先生のようになれ るのでしょうか?」
師「えっ? カッコ? あ、そうか。そんなものもあったな。いやあ、 すっかり忘れておったわ」

でも実用性がないじゃないか? ビジネスの世界で使えないじゃない か? との疑問が残るかもしれない。僕は実用性がないとは思わない し、ビジネスで使えなくても気にしない。実用性やビジネスより楽 しさの方が大きな動機づけとなるのだ。

そんなわけで、僕は『計算機プログラムの構造と解釈』にはまって いる。4月末から週に1度、先輩 と「λ 教集会」と称して勉強会を行っている (といってもほとんど 僕が教わる一方であるが)。

2.2.4節の図形言語

前述のλ教集会であるが、6月下旬になってやっと 2.2.4節の図形 言語までたどりついた。再帰的なおもしろい図形を描く例題である。 どうしてもそれを実際に動かしてみたくなったので、足りない部分 を補って guile + guile-gtk (cvs.gnome.org から gnome-guile が入手可能。こちらの方が新しい) で実現した。

ソースコード
sicp-pictlang.scm
サンプル画像
[cross-limit] [square-limit]

『計算機プログラムの構造と解釈』については、他にも書きたいこ とがたくさんある。気が向いたときに書き足そうと思っている。

書評

関連リンク集


Satoru Takabayashi