LISP

PythonOCamlと非主流言語を見てみて、今度はLISPに興味がわいています。なんと言っても基本命令の少なさが半端じゃありません。quote、atom、eq、cons、car、cdr、condの7つのみ。Common Lispには複素数型とかファイル入出力とかが入っていますが、それは基本命令で作られたライブラリのようなものと考えられます。基本は上記の7命令に加えてカッコだけですべてのことを行うことができるようになっています。ここまで潔いと、ある意味かっこいいです。

 

学部生の時にちょっと習ったときには「リストやツリー処理には便利だけど、それ以外にはあんまりすごいところがないなー」なんて思いましたが、Lispで書かれたプログラムを読んでみると、なかなか奥が深くて勉強になります。Eric S. Raymondが「PythonJavaC/C++PerlLISPすべてを勉強するといいでしょう。ただ、LISPは、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。」と言っていた意味がちょっとだけ分かったような気がします。