Subject: Re: Help with macros From: Erik Naggum <clerik@naggum.no> Date: 1997/11/19 Newsgroups: comp.lang.lisp Message-ID: <3088952859018297@naggum.no> * Aaron Gross | Also, for future reference, the Common Lisp functions MACROEXPAND and | MACROEXPAND-1 are invaluable for figuring out what's going on with | macros. (quoted only to maintain context.) | OK, now it's my turn to ask a question about PUSH. I was going to give | an example showing that DUFF-PUSH evaluated its arguments in the wrong | order, e.g., | | (push (progn (print "first") 'a) | (cdr (list (print "second") 'b))) : | Is this a bug in ACL, or am I missing something really obvious? well, try and macroexpand the form. :) when I first got ACL 4.3, I spent a *lot* of time with Appendix A, "Allegro CL and the Common Lisp Standard". it was _most_ educational. see item 48 on page A-5 for their story on PUSH-EVALUATION-ORDER:ITEM-FIRST, the full text at http://www.harlequin.com/books/HyperSpec/Issues/iss279-writeup.html sadly, some of the items are out of date: ACL _does_ conform to a lot of stuff where Appendix A says it doesn't. I can live with this. #\Erik -- if you think this year is "97", _you_ are not "year 2000 compliant". see http://sourcery.naggum.no/emacs/ for GNU Emacs 20-related material.