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

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

The original intent of &whole when it was put into maclisp was for the
macro to have a handle on the form being macroexpanded;  in that light
it is orthogonal to &rest or anything else, and even the case of
(defmacro foo (&whole w) ...) is not degenerate.  Similarly, embedded
use of &whole gives one a pointer to a subform which is being further
destructured, and which you wouldn't otherwise be able to get a handle
on.  If &whole inhibits too-many-arguments checking, then this
functionality becomes useless because you cannot use it and enforce
the structure at the same time.