当然我是新手,但是为什么不返回T
呢?
(eql (third '(0 1 'to 0 1)) 'to)
==> nil
但这确实返回了引用的'to
。
(third '(0 1 'to 0 1))
'TO
正如您可能猜到的,没有一种比较形式有效,eq
、eql
、equal
、equalp
.
最佳答案
因为
'TO
不是 EQL 到
TO
第一个是包含两个符号作为元素的列表。它实际上是 (QUOTE TO)
。
第二个只是一个符号。
? (EQL ''TO 'TO)
NIL
参见:
? (equal (third '(0 1 'to 0 1)) ''TO)
T
您试图在文字列表中引用一个符号,这通常没有意义,因为文字列表不会在内部求值。
关于lisp - 比较 Lisp 中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46123526/