Emacs Lisp 通过特殊井号表示法表示许多特殊对象和结构。
没有读取语法的对象会以这种形式展示(see 打印表示与读入语法)。
名称为空字符串的已 intern 符号的打印表示(see 符号类型)。
这是 function 的简写形式,见 匿名函数。
名称为 foo 的未 intern 符号的打印表示是 ‘#:foo’(see 符号类型)。
打印循环结构时,用于表示结构自引用的位置,‘N’ 是起始列表编号:
(let ((a (list 1))) (setcdr a a)) => (1 . #0)
‘#N=’ 为一个对象命名,‘#N#’ 表示该对象。这样在重新读取时,它们会是同一个对象而非副本(see 循环对象的读取语法)。
以十六进制表示 ‘N’(如 ‘#x2a’)。
以八进制表示 ‘N’(如 ‘#o52’)。
以二进制表示 ‘N’(如 ‘#b101010’)。
字符串的文本属性(see 字符串中的文本属性)。
字符表(see 字符表类型)。
哈希表(see 哈希表类型)。
字符(see 基本字符语法)。
字节编译文件中的当前文件名(see 文档字符串与编译)。不建议在 Emacs Lisp 源文件中使用。
跳过接下来的 ‘N’ 个字符(see 注释)。用于字节编译文件,不建议在 Emacs Lisp 源文件中使用。
表示后续的表达式无法被 Emacs Lisp 读取器读取。该标记仅用于显示文本(当它比其他表示不可读表达式的方式更美观时),绝不会出现在任何 Lisp 文件中。