题
> (eq? 1 1)
#t
> (eq? 1.1 1.1)
#f
> (= 1.1 1.1)
#t
这是在DrScheme交互窗口。可能有人请解释=和方程的区别?方案
解决方案
=比较号码。情商?如果参数测试表示在存储器中的相同数据对象。 EQV?应在第二种情况下工作,因为它测试一样EQ?但测试专门元。 更多关于在这里方案equlivence谓词。
其他提示
我猜想,因为
当量?计算结果为#F,除非其 参数表示相同的数据 对象在内存中;
和
方案存储不精确数(1.1) 不同于确切的数字(1)
两个1.1参数不驻留在存储器中的相同位置,并返回#f的为当量?
当量?上的数字是不可预测的。这取决于执行与否数字文字是否埋葬,使得同一数字是在内存中的相同位置。球拍语言,例如,最近已经在读取期间选择实习生,这类文字。 http://www.mail-archive.com/dev@racket -lang.org/msg04893.html
您将无法确信你的语言实现的运行时是否会代表每个编号唯一。这可能会影响那些盒装的值,比如浮标和大数。这就是为什么 = 的存在,作为数字的谓词:它检查内容的相等的烦躁,而不是浅指针相等
这是不是排他性像方案语言:平等VS equalness在Python发生时(是与 == )例如
不隶属于 StackOverflow