Common Lisp the Language, 2nd Edition
If a form is a list and the first element is not the name of a special form, it may be the name of a macro; if so, the form is said to be a macro call. A macro is essentially a function from forms to forms that will, given a call to that macro, compute a new form to be evaluated in place of the macro call. (This computation is sometimes referred to as macro expansion.) For example, the macro named return will take a form such as (return x) and from that form compute a new form (return-from nil x). We say that the old form expands into the new form. The new form is then evaluated in place of the original form; the value of the new form is returned as the value of the original form.
X3J13 voted in January 1989
(DOTTED-MACRO-FORMS)
to clarify that macro calls, and subforms
of macro calls, need not be proper lists, but that use of dotted forms
requires the macro definition to use ``. var'' or
``&rest var'' in order to match them properly.
It is then the responsibility of the macro definition to recognize
and appropriately handle such dotted forms or subforms.
There are a number of standard macros in Common Lisp, and the user can define more by using defmacro.
Macros provided by a Common Lisp implementation as described herein may expand into code that is not portable among differing implementations. That is, a macro call may be implementation-independent because the macro is defined in this book, but the expansion need not be.