16/01/29 18:19:57.53 Hj7360A2.net
いろんなプログラミング言語の中で、Lispは一番上に来ると言おう。
そしてこの主張を裏付けるために、他の4つの言語に欠けているある一つの機能を 言おう。
いったいこの機能z無しでどうやってプログラムを書くんだい? っていう、
そのzの最も大きなものの一つとして私が考えるのが、マクロだ 。
たくさんの言語が、マクロと呼ばれる機能を持っている。
でもLispのマクロは特別だ。
Lispのコードは、ひとたびパーザによって読まれたら、 あなたが解析することができるデータ構造になるんだ。
他の言語ならコンパイラが構文解析して内部に作られる構文木を、 Lispでは直接プログラムとして書き下すわけだ。
しかも、この構文木はプログラムからアクセスできるから、 構文木自身を操作するプログラムを書くことができる。
Lispではそのようなプログラムをマクロと呼ぶ。
いわば、プログラムを生成するプログラムだ。
---
普通のやつらの上を行け
著者:Paul Graham
URLリンク(practical-scheme.net)