比较Lisp中的符号

1 lisp

当然我是新手,但为什么不回来T呢?

(eql (third '(0 1 'to 0 1)) 'to)
==> nil
Run Code Online (Sandbox Code Playgroud)

但这确实会引用所引用的内容'to.

(third '(0 1 'to 0 1))
'TO
Run Code Online (Sandbox Code Playgroud)

正如你可能已经猜到,没有比较的形式工作,eq,eql,equal,equalp.

Rai*_*wig 8

因为

'TO
Run Code Online (Sandbox Code Playgroud)

不是EQL

TO
Run Code Online (Sandbox Code Playgroud)

第一个是包含两个符号作为元素的列表.实际上(QUOTE TO).

第二个只是一个符号.

? (EQL ''TO 'TO)
NIL
Run Code Online (Sandbox Code Playgroud)

看到:

? (equal (third '(0 1 'to 0 1)) ''TO)
T
Run Code Online (Sandbox Code Playgroud)

您试图在文字列表中引用符号,这通常没有意义,因为文字列表不在内部进行评估.