r7rs-small-texinfo

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit d0db62e60d9cfeecd992337c6c9f4b83cdaeb6d5
parent 80570e53e8099618157b8c708f18cb825d69f955
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date:   Tue, 30 Jan 2024 15:42:51 -0500

3.3: Reflow.

Diffstat:
Mdoc/r7rs-small/r7rs-small.texinfo | 71++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 38 insertions(+), 33 deletions(-)

diff --git a/doc/r7rs-small/r7rs-small.texinfo b/doc/r7rs-small/r7rs-small.texinfo @@ -934,39 +934,44 @@ and the word ``false'' to refer to @code{#f}. @node External representations (basic) @section External representations (basic) -An important concept in Scheme (and Lisp) is that of the @dfn{external representation} of an -object as a sequence of characters. For example, an external representation of the -integer 28 is the sequence of characters @samp{28}, and an external representation of a list -consisting of the integers 8 and 13 is the sequence of characters @samp{(8 13)}. - -The external representation of an object is not necessarily unique. The integer 28 also has -representations @samp{#e28.000} and @samp{#x1c}, and the list in the previous paragraph also has the -representations @samp{( 08 13 )} and @samp{(8 . (13 . ()))} (see section 6.4). - -Many objects have standard external representations, but some, such as procedures, do -not have standard representations (although particular implementations may define -representations for them). - -An external representation can be written in a program to obtain the corresponding -object (see @code{quote}, section 4.1.2). - -External representations can also be used for input and output. The procedure @code{read} -(section 6.13.2) parses external representations, and the procedure @code{write} (section 6.13.3) -generates them. Together, they provide an elegant and powerful input/output facility. - -Note that the sequence of characters @samp{(+ 2 6)} is @emph{not} an external representation of the -integer 8, even though it @emph{is} an expression evaluating to the integer 8; rather, it is an -external representation of a three-element list, the elements of which are the symbol @code{+} -and the integers 2 and 6. Scheme's syntax has the property that any sequence of -characters that is an expression is also the external representation of some object. This -can lead to confusion, since it is not always obvious out of context whether a given -sequence of characters is intended to denote data or program, but it is also a source of -power, since it facilitates writing programs such as interpreters and compilers that treat -programs as data (or vice versa). - -The syntax of external representations of various kinds of objects accompanies the -description of the primitives for manipulating the objects in the appropriate sections of -chapter 6. +An important concept in Scheme (and Lisp) is that of the @dfn{external +representation} of an object as a sequence of characters. For example, an +external representation of the integer 28 is the sequence of characters +@samp{28}, and an external representation of a list consisting of the +integers 8 and 13 is the sequence of characters @samp{(8 13)}. + +The external representation of an object is not necessarily unique. The +integer 28 also has representations @samp{#e28.000} and @samp{#x1c}, and the +list in the previous paragraph also has the representations @samp{( 08 13 )} +and @samp{(8 . (13 . ()))} (see section 6.4). + +Many objects have standard external representations, but some, such as +procedures, do not have standard representations (although particular +implementations may define representations for them). + +An external representation can be written in a program to obtain the +corresponding object (see @code{quote}, section 4.1.2). + +External representations can also be used for input and output. The +procedure @code{read} (section 6.13.2) parses external representations, and +the procedure @code{write} (section 6.13.3) generates them. Together, they +provide an elegant and powerful input/output facility. + +Note that the sequence of characters @samp{(+ 2 6)} is @emph{not} an +external representation of the integer 8, even though it @emph{is} an +expression evaluating to the integer 8; rather, it is an external +representation of a three-element list, the elements of which are the symbol +@code{+} and the integers 2 and 6. Scheme's syntax has the property that any +sequence of characters that is an expression is also the external +representation of some object. This can lead to confusion, since it is not +always obvious out of context whether a given sequence of characters is +intended to denote data or program, but it is also a source of power, since +it facilitates writing programs such as interpreters and compilers that +treat programs as data (or vice versa). + +The syntax of external representations of various kinds of objects +accompanies the description of the primitives for manipulating the objects +in the appropriate sections of chapter 6. @node Storage model @section Storage model