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:
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