这篇文章探讨了 Lisp 语言的同像性概念,即代码和数据可以互换。作者使用 Python 重新实现了 Lisp 1.5 手册中著名的“Lisp in Lisp”代码,以更易理解的方式展示了 Lisp 的这一特性。文章首先解释了 Lisp 的 M 表达式和 S 表达式,然后逐步展示了如何用 Python 的函数和列表来模拟 Lisp 的基本功能,包括列表操作、条件语句以及 lambda 表达式。最终,作者成功地用 Python 实现了 Lisp 的核心功能,证明了 Lisp 的同像性可以用其他语言来表达。