[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] Rational? and real? predicates


While working on the Chicken numbers code, I was confused about the
how the special values +inf, -inf and NaN should be treated by the
numerical predicates "rational?" and "real?".

I noticed that R6RS has an explicit note that "rational?" returns #f for
those flonums representing the infinities and NaN:
It doesn't say anything about "rational?" though.

R5RS and the R7RS draft have no such section, and it's unclear if the
predicates should return #t or #f for these values.  R5RS doesn't have
it because it doesn't explicitly allow for IEEE 754 numbers.

In R7RS 6.2.5 there's the following clause:
"Finite returns #t on all real numbers except +inf.0, -inf.0
  and +nan.0 [...]"
(BTW: I think the questionmark fell off the predicate's name here)

This implies that +inf.0, -inf.0 and +nan.0 *are* considered
real numbers.  Please clarify.  If this is intentionally left
unspecified, it would probably be good if that's stated explicitly.

"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
							-- Donald Knuth

Scheme-reports mailing list