Type: concept
Confidence: 0.95
Created: 2026-04-17
Updated: 2026-04-17
Tags: 技术研究计算理论

S-表达式

概述

S-表达式(Symbolic Expression,符号表达式)是 LISP 的统一数据表示形式,由原子和有序对递归定义,使程序和数据共享同一种表示成为可能。

关键内容

定义

仅两条规则: 1. 原子(atom)是 S-表达式,如 ABFOONIL 2. 如果 $e_1$ 和 $e_2$ 都是 S-表达式,则有序对 $(e_1 \cdot e_2)$ 也是 S-表达式

列表是 S-表达式的特例:(A . (B . (C . NIL))) 简写为 (A B C)

深刻洞见

S-表达式设计中最深刻的洞见在于:程序本身也用 S-表达式书写。函数调用 (+ 1 2) 是一个列表,函数定义 (lambda (x) (* x x)) 同样是一个列表。这意味着 LISP 程序可以像处理普通数据一样处理其他 LISP 程序。

同像性(Homoiconicity)

程序与数据共享同一种表示的性质被称为同像性,字面意思是"相同的表示"。它是 LISP 最具哲学深度的特征,也是其强大元编程能力的根源。

现代回声

来源

相关