Lisp macro 是一种用户自定义的语法结构,用于扩展 Lisp 语言。它的表示形式与函数对象非常相似,但参数传递语义不同。Lisp 宏表现为一个列表,其第一个元素是符号 macro,CDR 部分是一个 Lisp 函数对象(包含 lambda 符号)。
Lisp 宏对象通常使用内置的 defmacro 宏来定义,但在 Emacs 看来,任何以 macro 开头的列表都是宏。有关如何编写宏的说明,see 宏。
警告:Lisp 宏与键盘宏(see Keyboard Macros)是完全不同的概念。当我们不加限定地使用 “宏" 一词时,指的都是 Lisp 宏,而非键盘宏。