Mark H Weaver scripsit: > > Actually not. For one thing, 2.0 and 2 have been different in > > the sense of `eqv?` ever since R3RS. > > Since R2RS actually, if one pays attention to "will return #!false" > language in the first sentences of the definition [of `eq?`] instead > of the "Generally speaking ... should be used" language near the bottom.
What speaks loudest to me is "The rules for identity of numbers are extremely implementation-dependent and should not be relied on." The definition of `eqv?` overrides this for exact numbers, but leaves it alone for inexact numbers. So their equivalence under `eqv?` is simply not defined by R2RS. In any case, the last surviving R3RS implementation available to me is Oaklisp, and it doesn't care much about conformance. > > As long as your inexact reals are IEEE binaries, you can just > > distinguish this one case and then fall back to =. > > Not quite. One must handle cases such as (eqv? 1+0.0i 1-0.0i) => #f. I was speaking only of real numbers, and certainly only a single precision. With only two Schemes supporting multiple precisions (Racket and NexJ), and with the question of contagion unspecified, it's a borderline issue. -- Said Agatha Christie / To E. Philips Oppenheim John Cowan "Who is this Hemingway? / Who is this Proust? [email protected] Who is this Vladimir / Whatchamacallum, http://www.ccil.org/~cowan This neopostrealist / Rabble?" she groused. --George Starbuck, Pith and Vinegar _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
