4.3.1 Lisp/Scheme 在 Lisp 与 Scheme 的世界里,有一句被反复咀嚼却从未被真正嚼透的话:“代码即数据,数据即代码。”它不是一句修辞,不是一种隐喻,而是一条可执行的公理——一条刻在解析器内核、宏展开器调度表、求值器递归栈底的硬性约束。当你第一次用 读入一个 ,你得到的不是一个“字符串”,也不是一个“语法树”,而是一个内存中真实存在的、可遍历、可修改、可拼接、可 的 S-表达式列表。这不是哲学思辨,这是指针偏移、cons cell 分配、car/cdr 调度路径上的物理事实。 我们今天要深入的,正是这个同像性(homoiconicity)语言体系最锋利的刀刃:Lisp/Scheme 的实现肌理。不是泛泛而谈“宏很强大”,而是亲手剖开 的展开器;