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

Re: Macros and destructuring...



cc: BUG-lisp at MIT-MC, BUG-lispm at MIT-MC, BUG-macsymai at MIT-MC

This discussion should be moved to LISP-FORUM.  Dave, if you are not on
it, you probably should be.  I'll send further messages to LISP-FORUM
instead of these BUG- lists.

   What does a LEXPR take if not an argument vector?

It does not take an argument vector.  The ARG function never returns any
such vector.  ARG lets you get at your N arguments via an ugly mechanism
(numbers instead of names) because Maclisp hasn't had &mumbles.  What
FEXPRs do is even more irrelevant; FEXPRs are basically a loss and do
not fit into what I consider reasonable philosophy of Lisp.  I think
it is absurd to base a discussion of what Lisp ought to be on the basis
of what FEXPRs do now.

As for your second paragraph, I have already explained this in previous
messages.  A macro is a function to the meta-lenguage, but it is a macro
to the language.  To say that "A macro is still a function, just like a
FEXPR is" is quite wrong; FEXPRs aren't functions either.  Saying that
destructuring in DEFUN "is a natural thing to do, because at least one
class of function really needs it" is exactly what I have been
disagreeing with; you should *not* add something just because one
application needs it, you can get destructuring with a DESTRUCTURE
special form quite easily without building it in, and macros are NOT
functions.  Read my previous mail.