Lisp 实习生制作的符号

Lisp 实习生制作的符号,lisp,common-lisp,symbols,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 CL-USER>(setf(符号值(intern“foo”))98) 98 CL-USER>foo ; 对#的评估已中止。 CL-USER>|foo| 98

以下是一段代码片段:

CL-USER> (setf (symbol-value (intern "foo")) 98)
98
CL-USER> foo
; Evaluation aborted on #<UNBOUND-VARIABLE FOO {1003FC6213}>.
CL-USER> |foo|
98
CL-USER>(setf(符号值(intern“foo”))98)
98
CL-USER>foo
; 对#的评估已中止。
CL-USER>|foo|
98
intern
创建的符号在我创建的符号的前面和后面都有一个
“|”
。但是在中,
foo
被设置为符号的名称,而不是
|foo
。那么,为什么会发生这种情况

(intern“foo”)
显示为
|foo
,因为intern区分大小写

请注意,在您链接到的答案中,
(intern“FOO”)
是大写的。

(intern“FOO”)
显示为
|FOO
,因为intern区分大小写


请注意,在您链接到的答案中,
(intern“FOO”)
是大写的。

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

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