以下是代码段:
CL-USER> (setf (symbol-value (intern "foo")) 98)
98
CL-USER> foo
; Evaluation aborted on #<UNBOUND-VARIABLE FOO {1003FC6213}>.
CL-USER> |foo|
98
intern
创建的符号在我创建的符号的前面和末尾有一个"|"
。但是在this answer中,foo
被设置为符号的名称,而不是|foo|
。那么,为什么会这样呢?
答案 0 :(得分:4)
(intern "foo")
显示为|foo|
,因为实习生区分大小写。
请参阅与(intern "FOO")
关联的答案中的大写字母。
答案 1 :(得分:3)
注意||不是符号的一部分。它只是一个用于转义封闭符号的字符对。这可确保在读取符号时使用字符的确切大小写。