2016年9月19日

実践common lisp第8章

書き写すしかなかったソースコードを自動で生成してくれるものと言うことかな
ソースコードを生成するプログラムを作る、作れる、素晴らしい
マクロ展開時と言うのは、プリプロセスとか言うこともある
defunとdefmacroはソックリだ
その違いを一つだけ付け加えるなら、defunは引数が評価されるが、defmacroは引数を評価しない
コンパイル時、実行時と言うのを意識できるといい
バッククオート、カンマはdefmacro内だけで利用できるわけではない、好きな時に利用できる
だから便利ならどんどん使うべきだ
「漏れをふさぐ」は結構重要、今、分からなくてもマクロを利用するなら必ず必要になる
そんな面倒ならマクロイラネって言うのは本当に勿体ないのだけどこれは仕方がない
with-gensymsはめちゃくちゃ重要だと思う、マクロ使うなら結構な頻度で利用することになると思う
これこそマクロって感じがする
と、言うのは漏れをふさぐで登場するgensymって言うのは結構頻繁に記述しないといけないわけよ
そうなるとイチイチletでgensymってやるのって本当に面倒なんだよ
だからこそのソースコード生成マクロwith-gensymsってめちゃくちゃ理にかなっている