- 306 名前:270 mailto:sage [04/09/14 23:26:58]
- 今回は本当に勉強になりました。
今まで、special form が first class でない理由がずっとわからなかったの ですが、答えはこうだったのですね。「マクロがあるから」 first class というのは関数抽象に関する概念で、special form は構文であるから、 そこには収まらない。それを扱うのは構文抽象の手段であるマクロ。 漠然としていますが、こういう理解でよろしいでしょうか。 以前 ruby の matz 氏が、マクロでできることはほとんど高階関数でできてしまう と言っていましたが、決してそうではないですね。 今までマクロと言うと、パワフルだが汚いという負のイメージが強かったのですが、 今回それが変わりました。むしろ、関数抽象と補い合って Lisp の総体を支える 本質的なものだと感じました。今後もっとマクロを深く知りたいです。 ありがとうございました。
|

|