[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