[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Strong win later reversed: Real numbers have imaginary part #e0
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@x
Who is this Vladimir / Whatchamacallum, http://www.ccil.org/~cowan
This neopostrealist / Rabble?" she groused.
--George Starbuck, Pith and Vinegar
Scheme-reports mailing list