> (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发生时( == )例如

第一差值:eq?适用于任何一对值,而=与任何数量的数字作品

还有其他几种等价谓词。他们中的大多数只接受整整两个参数。 =“数字”章

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top