マクロで条件つきコンパイルみたいなことがやりたい
C の #if みたいなことを、Lisp のマクロでやりたい。が、うまくいかず。xyzzy と Emacs で想定した動きにならなかったので、なんか自分の凡ミスだとは思ってるんだけど。
(defmacro when* (pred &rest body) (when pred `(progn ,@body)))
で、以下のようになってほしい。
(macroexpand '(when* (equal 1 1) 1)) (progn 1) (macroexpand '(when* (equal 1 2) 2)) nil
実際はこうなる。
(macroexpand '(when* (equal 1 1) 1)) (progn 1) (macroexpand '(when* (equal 1 2) 2)) (progn 2)