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 源文件中使用。
最后更新于
这有帮助吗?