ウォンツテック

そでやまのーと

Common Lisp

LET OVER LAMBDA Reading

昨日の続きでバッククォートでネストされているマクロを追ってみる。 macroexpand-1がマクロを1回分だけ展開する関数なのでこれを使ってみてみよう。 (macroexpand-1 '(defmacro! square (o!x) `(* ,g!x ,g!x))) このようにmacroexpand-1に展開させたいマク…

LET OVER LAMBDA Reading

マクロを定義するマクロを定義するには,しばしば入れ子になった逆クォートが必要になる.逆クォートの入れ子は理解し辛いことで悪評が高い.よく使われる形にはいつか慣れるだろうが,逆クォートの付いた任意の式を見て,どのように展開されるかを言えるよ…