2008/10/02

[Common Lisp] with-ca/dr

わだば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))

1 件のコメント:

匿名 さんのコメント...

あ、自分名前を間違って覚えてましたね。with-car/cdrだと思いこんでました(^^;