20.1 读取与打印简介

读取(reading) 一个 Lisp 对象,是指将文本形式的 Lisp 表达式解析为对应的 Lisp 对象。 Lisp 程序正是通过这种方式从代码文件加载到 Lisp 环境中的。 我们把这段文本称为该对象的 读取语法(read syntax)。 例如,文本 ‘(a . 5)’ 是一个 cons 单元的读取语法,其 CARaCDR 为数字 5。

打印(printing) 一个 Lisp 对象,是指生成表示该对象的文本—— 将对象转换为它的 打印表示(printed representation) (see 打印表示与读入语法)。 打印上面所说的 cons 单元会得到文本 ‘(a . 5)’。

读取与打印大致互为逆操作: 打印一段文本读取后得到的对象,通常会得到相同的文本; 读取一个对象打印后得到的文本,通常会得到外观相似的对象。 例如,打印符号 foo 得到文本 ‘foo’,读取该文本会返回符号 foo。 打印元素为 ab 的列表得到文本 ‘(a b)’, 读取该文本会得到一个元素为 ab 的列表(但不是同一个列表对象)。

不过,这两种操作并非严格互逆,主要有三类例外:

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike