[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
Vassil Nikolov scripsit:
> Well, I believe that another point of view is preferable, namely,
> that (imag-part z) => 0 means that z is (certainly) a real number
> and that (imag-part z) => 0.0 means that z is a complex number very
> near and possibly, but not necessarily, on the real axis [*].
> (Therefore, (imag-part 2.0) => 0.) But that's just my 2/100+0i.
I agree, and so did the R6RS team, and so did the R7RS WG at one time.
But we ended up deciding that it was too subtle a change from the
established R5RS semantics that a number is real iff its imaginary part
is zero, exact or inexact. People's programs might stop working without
their understanding quite why.
R6S provides a workaround in the form of `real-valued?`,
`rational-valued?`, and `integer-valued?` procedures, which provide
the R5RS semantics (though without saying so). But our WG felt that
nobody would be able to remember the difference between `real?` and
`real-valued?` in actual use.
The Pure language, which doesn't have historical baggage, uses the R6RS
May the hair on your toes never fall out! John Cowan
--Thorin Oakenshield (to Bilbo) cowan@x
Scheme-reports mailing list