This page is part of the web mail archives of SRFI 70 from before July 7th, 2015. The new archives for SRFI 70 contain all messages, not just those from before July 7th, 2015.
| From: Thomas Bushnell BSG <tb@xxxxxxxxxx> | Date: Thu, 02 Jun 2005 13:05:29 -0700 | | Aubrey Jaffer <agj@xxxxxxxxxxxx> writes: | | > Yes, I should have written "inexact numbers". | | Ok, but when we speak of symbolic "infinite precision" representations | of sqrt(2), presumably we are using exact numbers. No! My point is that inexact numbers correspond to real number neighborhoods; and hence have finite precision. | > 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. | | I think they do, but implementations certainly can extend the syntax | of numbers if they wish (provided that NUMBER->STRING, STRING->NUMBER, | and READ all behave in the expected way). The three groups of features dealing with numerical representation are: * number->string, string->number; * read, write, display; * numerical constants. Section 6.2.3 Implementation restrictions: Although Scheme allows a variety of WRITTEN NOTATIONS for numbers, any particular implementation may support only some of them. Section 6.2.4 Syntax of numerical constants The syntax of the WRITTEN REPRESENTATIONS for numbers is described formally in section Lexical structure. Section 6.2.6 Numerical input and output The procedure `number->string' takes a number and a radix and returns as a string an EXTERNAL REPRESENTATION of the given number in the given radix such that ... Section 6.6.2 Input: `Read' converts EXTERNAL REPRESENTATIONs ... Section 6.6.3 Output: `Write' and `display' create WRITTEN REPRESENTATIONs. The text in section 6.2.6 specifies that `number->string' produces an EXTERNAL REPRESENTATION. Thus the numerical representations produced by `number->string' have the same notation as numerical constants. `Read' converts EXTERNAL REPRESENTATIONs, so it also has the same notation as numerical constants. `number->string' and `string->number' are constrained to use the same representations. The relation between the forms `read' and `write'n is not explicitly stated, but is reasonably assumed to be the same.