例如,如果我有原子'ABCD,有没有办法确定构成原子的各个字符?
答案 0 :(得分:11)
这些角色不是“构成一个原子”(原子是不同的东西;大致上“不是一个列表”)。
你所拥有的是符号。符号有一个名称,通过它可以引用它。您可以使用函数symbol-name
:
CL-USER > (symbol-name 'ABCD)
=> "ABCD"
(请注意,symbol-name
和ABCD
都表示符号,但symbol-name
被评估,而ABCD
不是由于引用 - 上面的内容与{ {1}}。)
符号还有其他属性,您可以通过函数(symbol-name (quote ABCD))
,symbol-package
,symbol-plist
或symbol-value
获取这些属性。
如需概述,请查看chapter 10 of the Hyperspec。
答案 1 :(得分:4)
获取符号中的字符列表:
(coerce (string 'ABCD) 'list) ; => (#\A #\B #\C #\D)
如果您首先转换符号,则可以对符号执行任何常规的字符串分析:
(string 'ABCD) ; => "ABCD"
(char (string 'ABCD) 0) ; => #\A
(subseq (string 'ABCD) 0 2) ; => "AB"