实习生制作的符号

Symbols Produced By Intern

这是一个代码片段:

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

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

看到在您链接到的答案中 (intern "FOO") 是大写的。

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