gpt4 book ai didi

comparison - 如何测试Scheme中引用符号的相等性?

转载 作者:行者123 更新时间:2023-12-04 17:57:06 26 4
gpt4 key购买 nike

在这个例子中,

> (= 1 1)
#t
> (= 'a 'a)
*** ERROR IN (console)@2.1 -- (Argument 1) NUMBER expected
(= 'a 'a)
1>

如何测试引用符号的相等性?

最佳答案

您可以使用 eq?eqv?equal? 中的任何一个。

所有这三个都可以与任何对象一起使用而不会出错(与 = 不同,它只能与数字一起使用)。但是,结果会因您传入的类型而异。但如果您知道要比较符号,则所有符号都将具有相同的结果。

如果你做过任何 Java 编程, eqv? 就像 ==equal? 就像 .equals() 。简单来说,eqv?做身份比较,equal?做值比较。

(并且 eq? 进行直接指针比较。对于某些实现,它可能比 eqv? 快,但要理解它有时会为相等的数字或字符返回 false。对于其他实现,它与 eqv? 完全相同。大多数情况下,为了健壮性,您应该坚持使用 eqv? 进行身份比较,而忘记 eq? 存在。)

关于comparison - 如何测试Scheme中引用符号的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com