Emacs lisp教程:添加两个数字时奇怪的额外输出

时间:2018-01-22 15:47:22

标签: emacs numbers

我关注emacs lisp tutorial并刚刚成功添加了两个数字:

(+ 111 234)

我在随机缓冲区输入此项(Markdown模式,现在,如果重要,但在*scratch*中也是如此),并使用C-x C-e进行评估。

但是,Emacs的底线并不是简单地返回345,而是输出这一行:

345 (#o531 #x159 ?r)

当我提交(+ 2 3)时,输出为5 (#o5 #x5 ?\C-e)

这个额外输出是什么?教程中没有提到它。

1 个答案:

答案 0 :(得分:1)

这是相同的,但是以八进制(#o...)和十六进制(#x...),以及字符语法。

在Emacs Lisp中,非负整数和字符是相同的类型:

(integerp ?d)
==> t
(characterp 123)
==> t

因此,您看到?\C-e为5,因为 Ctrl-e 的ASCII码为5。

您的?r可能是非ASCII r,其中包含字符代码345 你的地区。

Evaluating Emacs Lisp Expressions中记录了这一点。