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.