> Let's get the history straight here. R0RS (1975) had AMACRO, and R1RS
> (1978) had MACRO, and they worked like define-macro, though there was
> no equivalent of macroexpand. However, these reports described only the
> primeval Scheme embedded in MacLisp, and they have been totally obsolete
> since the publication of R2RS in 1985.
OK, you're right. I assumed that Scheme branched off from Lisp, which has
"always" had macroexpand -- or is this also not true?
> (Personally, you couldn't pay me to use define-macro. I don't have that
> much faith in my own omniscience.)
That's understandable, though I don't share that feeling...
I just re-read PG's On Lisp to review the problems with non-hygienic
macros. In my experience, wrapping the expansion in (let) and using
(gensym) is almost always enough -- but syntactic-sugar macros tend to be
more difficult indeed.
In my case, I would never give up macroexpand (especially since I have
code that depends on it, and I like what the code does).
Best,
Dan Muresan
http://alumnus.caltech.edu/~muresan
Received on Fri Sep 22 2006 - 19:14:12 UTC