lisp - 比较 Lisp 中的符号

标签 lisp

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

(eql (third '(0 1 'to 0 1)) 'to)
==> nil

但这确实返回了引用的'to

(third '(0 1 'to 0 1))
'TO

正如您可能猜到的,没有一种比较形式有效,eqeqlequalequalp .

最佳答案

因为

'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/

相关文章:

vim - 强制 Vim 在 Lisp 中对齐参数

Lisp 联合函数

scala - Lisp是REPL唯一的语言吗?

lisp - 在 lisp 中创建卡方函数。 [初学者]

performance - Fisher 判别计算时间

programming-languages - 为什么大多数 S-Expression 语言都是动态类型的?

lisp - lisp 缺少哪些功能?

lisp - 从列表 [Common Lisp] 返回唯一项的递归函数

lisp - 使用 cond 的 lisp 中的数字位数

Lisp:确定列表是否包含谓词