[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (defmacro foo (&whole w) ...)

I may have been the first (long ago at MIT) to make extensive use of
&whole.  But that aside, none of my usages fit in the the two molds you
suggest: [1] don't like default destructuring, or [2] want to know the
code name that invoked the macro (your &first).  

It was primarily for the more proseaic reason that GSB (or ALAN?)
suggested -- simply to give a direct handel on the offending form to the
error handler.  This is especially relevant when one takes to using
precisely one expander function as the "macro" for, say, three different
symbols (but &first could serve the functional part here ok).

Mail subsequent to this note of yours seems to suggest to me that the
"orthogonality" issue hasn't been fully understood.  One should just
pretend that DEFMACRO works exactly like it does before any
consideration of &whole, but the macro body can fortuitously access the
invoking form via some variable.  This latter part is the one piece of
functionality that DEFMACRO lacks when compared to MACRO; and I tend to
agree with you that 95% (yea, 99%) of all correct macro usages can
generally be expressed in the DEFMACRO format.

-- JonL --