| From: Thomas Bushnell BSG <xxxxxx@becket.net> | Date: Thu, 02 Jun 2005 09:16:37 -0700 | | Aubrey Jaffer <xxxxxx@alum.mit.edu> 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 Yes, I should have written "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 | representations." | | 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. Can number->string return a string which can't be READ as a number? I had thought that 6.2.4 "Syntax of numerical constants" and 7.1.1 "Lexical structure" applied to the results of NUMBER->STRING. If they are independent, a note about that should be added to the report.