*print-escape* 在 Debian 上运行不正常?

*print-escape* not behaving correctly on Debian?

我在大学里学clisp,在其中一本教科书上,在学习字符、编码等方面,我被教导

> #\newline
#\nEWLINE
> #\space
#\sPACE
> #\a
#\a
> (setq *print-escape* t)
t
> #\newline


> #\space

> #\a
a

我遇到的问题是我在 Debian Wheezy 上安装了 clisp(版本 1:2.49-8.1),但我完全没有得到相同的结果,但恰恰相反: - print-escape returns 默认为我 - 字符被打印为字符(即#\a => #\a),print-escape 被设置为 t 并且它们 "really" 是(即 #\a => a) 在我将 print-escape 设置为 nil 之后。

听起来课程中有错误 material 对吧?或者是否有任何其他 clisp 顶级变量可能对此产生影响并且可能在 Debian 中设置不同以便我得到完全相反的结果/行为?

您可以在 Common Lisp Hyperspec 中查找 Common Lisp 标准(CLisp 是 Common Lisp 的一种实现)(搜索 CLHS *print-escape*,或使用 http://l1sp.org 的搜索,或使用 http://l1sp.org/cl/*print-escape*).

标准说它默认绑定到 t 并且实现尝试以 read 将它们返回产生的值 [=14] 的方式打印内容=] 到打印的那个。

CLisp 实现说明 (http://www.clisp.org/impnotes.html) 没有提及与 *print-escape* 一起使用的字符。由于它确实在许多其他情况下认真尝试打印 readably,我认为您看到的是预期和预期的行为。

然而,这其中有很多实现依赖性。例如,#\space 可能会被其他实现打印为 #\(锐号反斜杠 space)。