Re: [Scheme-reports] Strong win later reversed: Real numbers have imaginary part #e0
John Cowan 21 Dec 2012 19:57 UTC
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? cowan@ccil.org
Who is this Vladimir / Whatchamacallum, http://www.ccil.org/~cowan
This neopostrealist / Rabble?" she groused.
--George Starbuck, Pith and Vinegar
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports