read macro
2007/07/02
#鼻炎で鼻水が出すぎて、なんか今日変なテンションになってます。
On Lispをだらだらと読んでいたんですが、リードマクロを知りました。
n から m までの数値のリストを作る関数は何度も書きましたが、リードマクロを使うと、ほんの9行のコードで #[2 7] という記述 が (2 3 4 5 6 7) のリストを表すようにすることができるのでした。これは、新しい文法です。9行で文法を導入できるのは恐しく強力です。マクロ(defmacro)でできることは、いまいち有効な使い道が想像できなかった*1のですが、リードマクロはヤバいです。
マクロの章を読み進めて(理解率20%)いくと、なんか、lispって特別だということが今更わかってきた気がします。(遅い)
他の言語を習得することはその言語を自由自在に使いこなすことだけど、Lispを習得することはLispを作ることができるようになることなんじゃないかと。
*1:ループとかインライン展開とかくらい