Lisp (方案)eq?eqv?平等?差别

Lisp (方案)eq?eqv?平等?差别,lisp,scheme,equality,Lisp,Scheme,Equality,我真的搞不清楚eq?,eqv?和相等? 请解释一下 此外,我们为什么需要它们?有关技术说明,请查看,您将找不到更详细的参考资料。或者简单地检查您的口译员,例如在Racket中: (等于v1 v2)→ 布尔值? 除非为特定数据类型另有规定,否则两个值相等?当且仅当它们是eqv?。进一步规范为equal?的数据类型包括字符串、字节字符串、对、可变对、向量、框、哈希表和可检查结构。在最后六种情况下,等式是递归定义的;如果v1和v2都包含参考循环,则当值的无限展开相等时,它们相等 (eqv?v1 v2)

我真的搞不清楚
eq?
eqv?
相等?

请解释一下


此外,我们为什么需要它们?

有关技术说明,请查看,您将找不到更详细的参考资料。或者简单地检查您的口译员,例如在Racket中:

(等于v1 v2)→ 布尔值?

除非为特定数据类型另有规定,否则两个值
相等?
当且仅当它们是
eqv?
。进一步规范为
equal?
的数据类型包括字符串、字节字符串、对、可变对、向量、框、哈希表和可检查结构。在最后六种情况下,等式是递归定义的;如果
v1
v2
都包含参考循环,则当值的无限展开相等时,它们相等

(eqv?v1 v2)→ 布尔值?

除非为特定数据类型另有规定,否则两个值为
eqv?
当且仅当它们为
eq?
。数字和字符数据类型是唯一与
eqv?
不同的数据类型

(等式?v1 v2)→ 布尔值?

eq?
如果
v1
v2
引用同一对象,则返回
#t
,否则返回
#f
。另见


RNRS规范中有整整两页与
eq?,eqv?,equal?和=
。这是你的电话号码。看看

使用eq?对于符号和标识同一对象,是否相等?对于看起来一样的东西。(LISP之地)在副本上的两个答案中,一个只不过是一个链接——指向整个文档PDF,甚至不指向某个特定部分——另一个也不过是一个链接——它确实提到了“价值等价”和“同一对象”,但没有解释这些术语的含义。因此,这个问题在“重复”IMHO中没有得到回答。投票重新开放。@WillNess这个问题的答案是相似的,所以保留两个版本没有任何好处。也许合并它们和/或在原作上悬赏?@finnw任何你认为正确的东西。:)我不擅长这类元功能。:)合并似乎是对的,我们怎么做?