r7rs-small-texinfo

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

commit 92d566ecba848b72f0272985297b096f7f565a38
parent dd3c317f9a2604f57cea5d5bdadc7b394f54b525
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date:   Tue, 30 Jan 2024 15:27:46 -0500

Sec. 3.1: reflow.

Diffstat:
Mdoc/r7rs-small/r7rs-small.texinfo | 60++++++++++++++++++++++++++++++++++--------------------------
1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/doc/r7rs-small/r7rs-small.texinfo b/doc/r7rs-small/r7rs-small.texinfo @@ -836,32 +836,40 @@ In particular, it is an error for quasiquote (section 4.2.8) to contain them. @node Variables - syntactic keywords - and regions @section Variables, syntactic keywords, and regions -An identifier can name either a type of syntax or a location where a value can be stored. An -identifier that names a type of syntax is called a @dfn{syntactic keyword} and is said to be @dfn{bound} to -a transformer for that syntax. An identifier that names a location is called a @dfn{variable} and is -said to be @dfn{bound} to that location. The set of all visible bindings in effect at some point in a -program is known as the @dfn{environment} in effect at that point. The value stored in the -location to which a variable is bound is called the variable's value. By abuse of -terminology, the variable is sometimes said to name the value or to be bound to the -value. This is not quite accurate, but confusion rarely results from this practice. - -Certain expression types are used to create new kinds of syntax and to bind syntactic -keywords to those new syntaxes, while other expression types create new locations and -bind variables to those locations. These expression types are called @dfn{binding constructs}. -Those that bind syntactic keywords are listed in section 4.3. The most fundamental of the -variable binding constructs is the @code{lambda} expression, because all other variable binding -constructs (except top-level bindings) can be explained in terms of @code{lambda} expressions. -The other variable binding constructs are @code{let}, @code{let*}, @code{letrec}, @code{letrec*}, @code{let-values}, @code{let*-values}, -and @code{do} expressions (see sections 4.1.4, 4.2.2, and 4.2.4). - -Scheme is a language with block structure. To each place where an identifier is bound in a -program there corresponds a @dfn{region} of the program text within which the binding is -visible. The region is determined by the particular binding construct that establishes the -binding; if the binding is established by a @code{lambda} expression, for example, then its region -is the entire @code{lambda} expression. Every mention of an identifier refers to the binding of the -identifier that established the innermost of the regions containing the use. If there is no -binding of the identifier whose region contains the use, then the use refers to the binding -for the variable in the global environment, if any (chapters 4 and 6); if there is no binding +An identifier can name either a type of syntax or a location where a value +can be stored. An identifier that names a type of syntax is called a +@dfn{syntactic keyword} and is said to be @dfn{bound} to a transformer for +that syntax. An identifier that names a location is called a @dfn{variable} +and is said to be @dfn{bound} to that location. The set of all visible +bindings in effect at some point in a program is known as the +@dfn{environment} in effect at that point. The value stored in the location +to which a variable is bound is called the variable's value. By abuse of +terminology, the variable is sometimes said to name the value or to be bound +to the value. This is not quite accurate, but confusion rarely results from +this practice. + +Certain expression types are used to create new kinds of syntax and to bind +syntactic keywords to those new syntaxes, while other expression types +create new locations and bind variables to those locations. These expression +types are called @dfn{binding constructs}. Those that bind syntactic +keywords are listed in section 4.3. The most fundamental of the variable +binding constructs is the @code{lambda} expression, because all other +variable binding constructs (except top-level bindings) can be explained in +terms of @code{lambda} expressions. The other variable binding constructs +are @code{let}, @code{let*}, @code{letrec}, @code{letrec*}, +@code{let-values}, @code{let*-values}, and @code{do} expressions (see +sections 4.1.4, 4.2.2, and 4.2.4). + +Scheme is a language with block structure. To each place where an identifier +is bound in a program there corresponds a @dfn{region} of the program text +within which the binding is visible. The region is determined by the +particular binding construct that establishes the binding; if the binding is +established by a @code{lambda} expression, for example, then its region is +the entire @code{lambda} expression. Every mention of an identifier refers +to the binding of the identifier that established the innermost of the +regions containing the use. If there is no binding of the identifier whose +region contains the use, then the use refers to the binding for the variable +in the global environment, if any (chapters 4 and 6); if there is no binding for the identifier, it is said to be @dfn{unbound}. @node Disjointness of types