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

To: Common-Lisp @ SU-AI

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

From: Glenn S. Burke <GSB @ MIT-MC>

Date: Mon, 03 Sep 1984 01:46:00 -0000

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.