例如,如果我有原子'ABCD,有没有办法确定组成原子的各个字符?
问问题
223 次
2 回答
11
这些字符不“组成一个原子”(一个原子是不同的东西;大致“不是一个列表”)。
你所拥有的就是一个符号。一个符号有一个名称,它被引用。您可以使用以下函数获取符号的名称symbol-name
:
CL-USER > (symbol-name 'ABCD)
=> "ABCD"
(请注意,两者symbol-name
和ABCD
表示符号,但symbol-name
被评估,而ABCD
不是由于引用——上面的读法与 相同(symbol-name (quote ABCD))
。)
符号还具有其他属性,您可以通过函数symbol-package
、symbol-plist
、symbol-value
或获得这些属性symbol-function
。
有关概述,请查看Hyperspec 的第 10 章。
于 2012-09-11T19:09:03.353 回答
4
要获取符号中的字符列表:
(coerce (string 'ABCD) 'list) ; => (#\A #\B #\C #\D)
如果您首先转换符号,则可以对符号执行任何类型的常用字符串分析:
(string 'ABCD) ; => "ABCD"
(char (string 'ABCD) 0) ; => #\A
(subseq (string 'ABCD) 0 2) ; => "AB"
于 2012-09-11T14:16:59.863 回答