实习生制作的符号

时间:2017-06-14 04:54:52

标签: lisp common-lisp symbols

以下是代码段:

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|。那么,为什么会这样呢?

2 个答案:

答案 0 :(得分:4)

(intern "foo")显示为|foo|,因为实习生区分大小写。

请参阅与(intern "FOO")关联的答案中的大写字母。

答案 1 :(得分:3)

注意||不是符号的一部分。它只是一个用于转义封闭符号的字符对。这可确保在读取符号时使用字符的确切大小写。