From: Kevin R. <kp...@ma...> - 2010-06-13 18:26:54
|
On Jun 12, 2010, at 23:59, Tobias C Rittweiler wrote: > I have just been asked in a private reply why not just use > > ,@(when (foop) `((something ,x ,y))) > > I'm responding to the list because a) I'm having trouble reaching > my mail server, and b) it's a valid question! > > The above won't really work that well in case of > > ,?(when (foop) (generate-frobber x y)) > > Without ,?, you must tie the return value of GENERATE-FROBBER to > whether > you want to use it with ,@ or just , because in > > ,@(when (foop) (generate-frobber x y)) > > it would have to return its expansion wrapped in a list, but in > > ,(generate-frobber x y) > > it would not. (defmacro spleen (cond &body body) `(if ,cond (list (progn ,@body)) '())) ,@(spleen (foop) (generate-frobber x y)) -- Kevin Reid <http://switchb.org/kpreid/> |