出版社より献本御礼。
これだ!
Lispに足りなかったのは。
本書「Land of Lisp」は、Lispの、Lispによる、Lispのための喜劇。これでわかった。

Lispに足りなかったもの、それは、笑いだ。
およそ Computer Science というものを(独学であれ学校であれ)学んだプログラマーで、Lispに一目置かないものは存在しない。いたらそいつはモグリだと謹んで断言していただく。今日日主に使われている電脳言語は、多かれ少なかれLispの薫陶を受けている。JavaScript, Perl, Ruby, Python はもちろんのこと、本書で好んでネタにされている C++ でさえラムダ関数を持つ。それが現代。
なのに、彼らのほとんどは、Lispではなく、「言語をフルを扱えない愚民どもがアイディアをつまみにくる言語」でプログラムすることを選ぶのだろう。
Lispersが他の言語(er)?を嗤うことはあっても、Lisp自体を笑いの対象とすることはなかったからだ。
笑いと嗤いは違う。ここでいう嗤いは以下の"laugh"に相当する。
404 Blog Not Found:サルが使おうとすると怒られる気がする言語Programming PerlYou can program in Perl Baby-Talk, and we promise no to laugh.
そのありようは、右の図からも伺うことができる。@geekpageのGeekなぺーじ:プログラミング言語ヒエラルキーから拝借したものだが、この図の通り、彼らが他人を見下すことはあっても、見下されることはなかったのだ。
"Lispers know the value of everything, but the cost of nothing."、「Lispersはどんな値でも知ってるが、ものごとの値段は何も知らない」という名言があるが、これをもじれば、"Lispers know the programming of everything, but nothing of the programmer"「Lispersはどんなプログラミングも知っているが、プログラマーのことは何も知らない」となるだろうか。「若者のLisp離れ」はその自然の結果であり、そしてLispersが負った代償である。
その意味で、本書のネタもほとんどは「他の言語を嗤う」に費やしている点は相変わらずである。RubyもPythonも著者の目からすれば「クロマニヨンの末裔」だ。しかし本書には、ついにLispを笑うネタが登場するのだ。
Haskellの、おかげである。
ある意味、Haskellは純粋関数型と遅延評価という、Lispが後回しにした宿題をきちんとやってのけた言語でもある。その意味でHaskellにはLispを笑う資格が確かにある。私が一番笑ったのは、よって13.5章。「副作用仕様罪」www
それでは関数型プログラミングを学ぼうとするものはLispを捨てて北に行くべきなのだろうか*0?
ご安心を。それでもLispを学ぶべき理由は、きちんと残っている。
404 Blog Not Found:(define 独学 再帰) - 書評 - 素数夜曲:女王陛下のLispLisp:S式の理由S式は言ってみれば言語の構文木そのものですつまり、Haskellも含め他のプログラミング言語が"parse"して機械的に行う部分を、Lispであれば素手でいじるのだ。仕事で用いるには少々面倒くさいし見づらいが、しかしプログラムという行為の核心に、これで手に触れることができる。
Lispは処理形を作るのも比較的容易な言語であるということ。他の言語で実装する場合もそうだし、Lisp自身実装するともなればなおの事。仕事で用いる言語のほとんどが、一流企業の禄を食む一流プログラマーが何人、時には何百何千人もその改善に取り組んでいるのに対し、Lispの実装は学部生の課題に何とか出せる難易度。実際私がはじめて正規に取った computer science のクラスの最終課題は、 scheme による mini scheme の実装であった(schemeやS式のSの字も知らなかった学生に一学期でそこまでというのはかなり厳しい課題ではあるが)。構文木を作らなくていいということで、そこまで難易度が下がる。
ベタに学べないなら、ネタで学ぶしかないじゃない。あなたも、わたしも。
'(Dan the ((Casual and Occasional) Lisper))
追記: ところでColophonがないのはなんでなんだZe!これでは最低限文化的な動物本にならないではないかっ!Lisp星人は獣でないから人だからいいのか?
- 北米大陸で「北に行く」というのは、「メキシコを捨てアメリカに行く」の暗喩でもある(ちなみに両国とも"the United States")。本書でもネタとして使われているが、どう使われているかは見てのお楽しみ。
- 謝辞
- はじめに
- Lispがクールで、そして奇妙なわけ
- Lispがそんなにすごいなら、どうしてもっとたくさん使われないのか
- Lispはどこから来たのか
- Lispの力はどこから来るのか
- 第I部 LISPは力なり
- 1章 さあLispを始めてみよう
- 2章 はじめてのLispプログラム
- 3章 Lispの構文の世界を探検する
- 第II部 LISPは対称なり
- 4章 条件と判断
- 5章 テキストゲームのエンジンを作る
- 6章 世界とのインタフェース: Lispでのデータの読み書き
- 6.5章 lambda:とても大事な関数なので特別に章を分けて説明しよう
- 7章 単純なリストの先へ
- 8章 親父のワンプスとは一味違う
- 9章 より進んだデータ型とジェネリックプログラミング
- 第III部 LISPはハックなり
- 10章 loopコマンドによるループ
- 11章 format関数でテキストを表示する
- 12章 ストリーム
- 13章 Webサーバを作ろう!
- 13.5章 美しき哉 関数型プログラミング
- 第IV部 LISPは科学なり
- 14章 関数型プログラミングでLispをレベルアップ
- 15章 ダイス・オブ・ドゥーム:関数型スタイルでゲームを書こう
- 16章 マクロの魔法
- 17章 ドメイン特化言語
- 18章 遅延プログラミング
- 19章 ダイス・オブ・ドゥームに
- 20章 ダイス・オブ・ドゥームをさらに面白く
- エピローグ
- 訳者あとがき
- 索引
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。