| Aubrey Jaffer wrote:
| > Having a universal read/write representation for arbitrary bit
| > patterms prevents including information like the procedure
| > causing the NaN in its printed representation.
|
| I don't see this. Can you elaborate?
Suppose Scheme implementation X distinguishes NaNs by the procedure
producing them and makes that information part of the printed
representation for NaNs:
(expt +inf.0 0) ==> #<not-a-number expt>
(+ -inf.0 +inf.0) ==> #<not-a-number +>
(/ (* 0 -inf.0) 3) ==> #<not-a-number *>
(+ 5. (/ 0.0 0.0)) ==> #<not-a-number />
If R6RS has a universal read/write representation for arbitrary bit
NaN patterns, then R6RS must assign bit patterns for all possible
#<not-a-number {*}> syntaxes. If some future IEEE-754 hardware
returns more than one NaN code, then its assignments are very unlikely
to match the R6RS codes.