Next: 自定义设置, Previous: 函数, Up: Emacs Lisp [Contents][Index]
14 宏 ¶
宏(Macros) 让你可以定义新的控制结构以及其他语言特性。宏的定义方式与函数非常相似,但它并非说明如何计算一个值,而是说明如何生成另一段 Lisp 表达式,再由这段表达式去计算出最终的值。我们把这段生成的表达式称为宏的 展开式(expansion)。
宏之所以能做到这一点,是因为它作用于未求值的参数表达式,而不像函数那样直接处理参数的值。因此,宏可以用这些参数表达式(或其中一部分)来构造展开式。
如果你只是为了提升运行速度,想用宏去实现普通函数就能完成的功能,建议改用内联函数。See 内联函数。