自作のLispの実装でちょっと面白いコードがあったのでメモ。
register-macro というマクロを定義する関数があったとして、それを使ってマクロを定義するマクロdefmacroを定義するコードは
(register-macro 'defmacro |
https://github.com/tyfkda/lisp2js/blob/master/src%2Fbasic.lisp#L1-L4
同じことを2度書いてるようで面白いと思った。
追記
いったん defmacro を定義すると、それを使って defmacro を定義するというわけのわからんことができるようになる:
(defmacro defmacro (name params &body body) |