Formal comment #28 (defect)
{real,rational,integer}-valued procedures need a rationale.
Reported by: John Cowan
Component: baselibrary
Version: 5.91
From what I can make out from the examples, the *-valued? procedures
return #t if the number has an imaginary part of inexact zero, (where
real?, rational?, and integer? all rightly return #f), and
real-valued? in particular returns #f on NaN (where real? returns #t).
What are these procedures for? R6RS should say.
RESPONSE:
The R6RS should say that the `*-valued' procedures test whether a
given number can be coerced to the specified type without loss of
numerical accuracy. Their behavior is different from the "regular"
numerical type predicates, whose behavior is motivated by closure
properties designed to enable statically predictable semantics
and efficient implementation.
The R6RS specification of `real-valued?' should be changed so it
returns #t on +nan.0.