Mac 的奇幻漂流:Lisp宏的诞生故事

The Story of Mac: A Just-So Story

Common Lisp中的宏(Macros)常被初学者误解为一种特殊的函数,但它们的本质截然不同。文章通过一个虚构的“Mac”的故事,生动地解释了宏的工作原理:Mac最初是负责将程序员留下的“代码笔记”替换为实际代码的助手,后来他进化为让编译器自动运行这些生成代码的程序,最终“消失”在编译过程中。这个故事揭示了宏展开时间(macro expansion time)与运行时间(runtime)的关键区别:宏在编译阶段生成代码,而非常规代码在运行时执行。理解这一区别,是掌握Lisp宏强大抽象能力的关键。

宏是语言的一部分,旨在让你能够基于核心语言和标准库创建抽象,从而更直接地表达你想要表达的内容。

同日更多故事

2026-08-11