2.2 特定的读取语法

Emcas Lisp 中有很多特殊的哈希记法,来表示一些特殊的对象。

记法

解释

'#<...>'

没有读取语法的对象的打印表示

'##'

名称为空字符串的内部注册(interned)符号的记法

'#''

这个是 function 的缩写,(查阅 匿名函数)

'#:'

未注册(uninterned)符号的记法。比如名称为foo 的符号: '#:foo'。(查阅 符号类型)

'#N'

循环结构的记法,其中的 N 是回环的位置。

(let ((a (list 1)))

(setcdr a a))

=> (1 . #0)

'#N='

'#N#'

'#N=' 给一个对象命名,而'#N#'代表那个对象,所以,当读取这个对象时,它们读取的是同一个对象,而不是副本

'#xN'

表示十六进制数字 ( '#x2a')

'#oN'

表示八进制数字 ('#o52')

'#bN'

表示二进制数字 ('#b101010')

'#(...)'

字符的文本属性 (查阅 文本属性和字符串)

'#^'

字符表 (查阅字符表类型)

'#s(hash-table ...)

哈希表 (查阅哈希表类型)

'?C'

字符 (查询 基础字符语法)

'#$'

当前字节码文件的文件名 (查阅 文档和编译)。这并不意味着在 Emacs Lisp 源文件中使用。

'#@N'

跳过余下的 'N' 个字符。这个一般在字符编译文件中使用,这并不意味着在 Emcas Lisp 源文件中使用。

最后更新于