わだばLisperになるさんのことでとりあげてもらったマクロ。実装はこんなふう。
defmacro! は Let Over Lambda に出てくるマクロで、o! で始まるシンボルは once-only マクロ、g! で始まるシンボルは with-gensym マクロと同じになる。
(defmacro! with-ca/dr (o!var &body body) `(let ((car (car ,g!var)) (cdr (cdr ,g!var))) ,@body))
あ、自分名前を間違って覚えてましたね。with-car/cdrだと思いこんでました(^^;
あ、自分名前を間違って覚えてましたね。with-car/cdrだと思いこんでました(^^;
返信削除