Hatena::Groupcadr

kozima の日記

2009-07-24

defmacro ってマクロじゃん

| 23:26

後で気付いたのを思い出したので g:cadr:id:lkozima:20090722:1248276046 に自分で突っ込む。

また、もしかしたら展開中のフォームの中に defmacro があったりして、そこで定義されているマクロを考慮して展開する必要もあるかもしれません。マクロ定義を生成するマクロの中には (progn (defmacro ...) ...) のようなコードに展開されるものも存在するので。

defmacroマクロなので一般にはこれでは無理ですね。defmacroマクロだということは defmacro を直接には経由しないでマクロを定義してしまうことができるということですから。elisp の場合は special form だからそこは問題なかったんですね。

ここまで考えて、だんだん macroexpand-all を本気で実装しようとすると面倒なことになりそうだという気がしてきました。