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

Re: infinities reformulated

Aubrey Jaffer <agj@xxxxxxxxxxxx> writes:

> To first order:
>   (define (precision-of x) (string-length (number->string x)))
> R5RS requires all numbers to have external representations; and it
> specifies the allowed formats.

What?  number->string does not specify the allowed formats for exact
numbers, only for inexact (and only for some inexact numbers at that).
This isn't an accident; it was done specifically for just this reason,
to allow for different representations.  See the Rationale:

"The unspecified case allows for infinities, NaNs, and non-flonum

So if X is an exact version of sqrt 2, it's perfectly fine for
number->string to return anything that string->number can understand.