自作の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) |