A Lisp macro is a user-defined construct that extends the Lisp
language. It is represented as an object much like a function,
but with different argument-passing semantics. A Lisp macro has
the form of a list whose first element is the symbol macro and
whose cdr is a Lisp function object, including the Lisp macro
objects are usually defined with the built-in defmacro function,
but any list that begins with a macro as far as Emacs is
concerned. See Macros, for an explanation of how to write a
macro. Warning: Lisp macros and keyboard macros (see Keyboard
Macros) are entirely different things. When we use the word
“macro” without qualification, we mean a Lisp macro, not a
keyboard macro.