commit 10602734eac6a205812eae2dfa208cb01e0cd160
parent e5508c9752b729512a2839b3fe141df2acb11a83
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date: Mon, 29 Jan 2024 13:50:29 -0500
Use Texinfo dashes.
Diffstat:
1 file changed, 54 insertions(+), 54 deletions(-)
diff --git a/doc/r7rs-small/r7rs-small.texinfo b/doc/r7rs-small/r7rs-small.texinfo
@@ -62,7 +62,7 @@ language.
Chapters 4 and 5 describe the syntax and semantics of expressions, definitions,
programs, and libraries.
-Chapter 6 describes Scheme’s built-in procedures, which include all of the language’s data
+Chapter 6 describes Scheme's built-in procedures, which include all of the language's data
manipulation and input/output primitives.
Chapter 7 provides a formal syntax for Scheme written in extended BNF, along with a
@@ -117,7 +117,7 @@ essentially GOTOs that pass arguments, thus allowing a programming style that is
coherent and efficient. Scheme was the first widely used programming language to
embrace first-class escape procedures, from which all previously known sequential
control structures can be synthesized. A subsequent version of Scheme introduced the
-concept of exact and inexact numbers, an extension of Common Lisp’s generic
+concept of exact and inexact numbers, an extension of Common Lisp's generic
arithmetic. More recently, Scheme became the first programming language to support
hygienic macros, which permit the syntax of a block-structured language to be extended
in a consistent and reliable manner.
@@ -151,7 +151,7 @@ Scheme conforming to it were created. However, most existing R5RS implementation
only selected parts of it.
In consequence, the Scheme Steering Committee decided in August 2009 to divide the
-standard into two separate but compatible languages — a ``small'' language, suitable for
+standard into two separate but compatible languages---a ``small'' language, suitable for
educators, researchers, and users of embedded languages, focused on R5RS
compatibility, and a ``large'' language focused on the practical needs of mainstream
software development, intended to become a replacement for R6RS. The present report
@@ -168,7 +168,7 @@ documentation, modifying it as necessary.
We would like to thank the members of the Steering Committee, William Clinger, Marc
Feeley, Chris Hanson, Jonathan Rees, and Olin Shivers, for their support and guidance.
-This report is very much a community effort, and we’d like to thank everyone who
+This report is very much a community effort, and we'd like to thank everyone who
provided comments and feedback, including the following people: David Adler, Eli
Barzilay, Taylan Ulrich Bayırlı/Kammer, Marco Benelli, Pierpaolo Bernardi, Peter Bex, Per
Bothner, John Boyle, Taylor Campbell, Raffael Cavallaro, Ray Dillinger, Biep Durieux,
@@ -213,7 +213,7 @@ Algol 60 [25], as well as the following SRFIs: 0, 1, 4, 6, 9, 11, 13, 16, 30, 34
@node Semantics
@section Semantics
-This section gives an overview of Scheme’s semantics. A detailed informal semantics is the
+This section gives an overview of Scheme's semantics. A detailed informal semantics is the
subject of chapters 3 through 6. For reference purposes, section 7.2 provides a formal
semantics of Scheme.
@@ -244,7 +244,7 @@ backtracking, and coroutines. See section 6.10.
Arguments to Scheme procedures are always passed by value, which means that the
actual argument expressions are evaluated before the procedure gains control,
-regardless of whether the procedure needs the result of the evaluation. Scheme’s model
+regardless of whether the procedure needs the result of the evaluation. Scheme's model
of arithmetic is designed to remain as independent as possible of the particular ways in
which numbers are represented within a computer. In Scheme, every integer is a rational
number, every rational is a real, and every real is a complex number. Thus the distinction
@@ -337,7 +337,7 @@ read-error?. Alternatively, implementations may provide non-portable extensions.
For example, it is an error for a procedure to be passed an argument of a type that the
procedure is not explicitly specified to handle, even though such domain errors are seldom
-mentioned in this report. Implementations may signal an error, extend a procedure’s
+mentioned in this report. Implementations may signal an error, extend a procedure's
domain of definition to include such arguments, or fail catastrophically.
This report uses the phrase ``may report a violation of an implementation restriction'' to
@@ -816,7 +816,7 @@ identifier that names a type of syntax is called a syntactic keywordand is said
a transformer for that syntax. An identifier that names a location is called a variableand is
said to be bound to that location. The set of all visible bindingsin effect at some point in a
program is known as the 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
+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.
@@ -891,7 +891,7 @@ generates them. Together, they provide an elegant and powerful input/output faci
Note that the sequence of characters ``(+ 2 6)'' is not an external representation of the
integer 8, even though it 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 +
-and the integers 2 and 6. Scheme’s syntax has the property that any sequence of
+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
@@ -960,7 +960,7 @@ not yet returned. A formal definition of proper tail recursion can be found in [
followed immediately by a return to the continuation passed to the procedure. A
properly tail-recursive implementation returns to that continuation directly.
- Proper tail recursion was one of the central ideas in Steele and Sussman’s original
+ Proper tail recursion was one of the central ideas in Steele and Sussman's original
version of Scheme. Their first Scheme interpreter implemented both functions and
actors. Control flow was expressed using actors, which differed from functions in
that they passed their results on to another actor instead of returning to a caller. In
@@ -1222,7 +1222,7 @@ lambda expression was evaluated will be extended by binding the variables in the
argument list to fresh locations, and the corresponding actual argument values will be
stored in those locations. (A fresh location is one that is distinct from every previously
existing location.) Next, the expressions in the body of the lambda expression (which, if it
-contains definitions, represents a letrec* form — see section 4.2.2) will be evaluated
+contains definitions, represents a letrec* form---see section 4.2.2) will be evaluated
sequentially in the extended environment. The results of the last expression in the body
will be returned as the results of the procedure call.
@@ -1540,7 +1540,7 @@ A <feature requirement> takes one of the following forms:
Semantics: Each implementation maintains a list of feature identifiers which are present,
as well as a list of libraries which can be imported. The value of a <feature requirement> is
determined by replacing each <feature identifier> and (library <library name>) on the
-implementation’s lists with #t, and all other feature identifiers and library names with #f,
+implementation's lists with #t, and all other feature identifiers and library names with #f,
then evaluating the resulting expression as a Scheme boolean expression under the
normal interpretation of and, or, and not.
@@ -1752,7 +1752,7 @@ and so on.
@node Sequencing
@subsection Sequencing
-Both of Scheme’s sequencing constructs are named begin, but the two have slightly
+Both of Scheme's sequencing constructs are named begin, but the two have slightly
different forms and uses:
syntax: (begin <expression or definition> …)
@@ -2108,7 +2108,7 @@ Semantics: The <body> is evaluated with an exception handler that binds the rais
(see raise in section 6.11) to <variable> and, within the scope of that binding, evaluates the
clauses as if they were the clauses of a cond expression. That implicit cond expression is
evaluated with the continuation and dynamic environment of the guard expression. If
-every <cond clause>’s <test> evaluates to #f and there is no else clause, then
+every <cond clause>'s <test> evaluates to #f and there is no else clause, then
raise-continuable is invoked on the raised object within the dynamic environment of the
original call to raise or raise-continuable, except that the current exception handler is that
of the guard expression.
@@ -2301,7 +2301,7 @@ unintended conflicts:
local bindings that surround the use of the macro.
In consequence, all macros defined using the pattern language are ``hygienic'' and
-``referentially transparent'' and thus preserve Scheme’s lexical scoping. [21, 22, 2, 9, 12]
+``referentially transparent'' and thus preserve Scheme's lexical scoping. [21, 22, 2, 9, 12]
Implementations may provide macro facilities of other types.
@@ -2647,7 +2647,7 @@ the imported bindings. It takes one of the following forms:
* (rename <import set>
(<identifier1> <identifier2>) …)
-In the first form, all of the identifiers in the named library’s export clauses are imported
+In the first form, all of the identifiers in the named library's export clauses are imported
with the same names (or the exported names if exported with rename). The additional
<import set> forms modify this set as follows:
@@ -2879,8 +2879,8 @@ error for the same identifier to occur more than once as a field name. It is als
for the same identifier to occur more than once as an accessor or mutator name.
The define-record-type construct is generative: each use creates a new record type that is
-distinct from all existing types, including Scheme’s predefined types and other record
-types — even record types of the same name or structure.
+distinct from all existing types, including Scheme's predefined types and other record
+types---even record types of the same name or structure.
An instance of define-record-type is equivalent to the following definitions:
@@ -3017,7 +3017,7 @@ library. Alternatively, cond-expand and import declarations may be processed in
right order interspersed with the processing of other declarations, with the environment
growing as imported bindings are added to it by each import declaration.
-When a library is loaded, its expressions are executed in textual order. If a library’s
+When a library is loaded, its expressions are executed in textual order. If a library's
definitions are referenced in the expanded form of a program or library body, then that
library must be loaded before the expanded program or library body is evaluated. This
rule applies transitively. If a library is imported by more than one program or library, it
@@ -3156,7 +3156,7 @@ import declarations in places other than the beginning.
@node Standard procedures
@chapter Standard procedures
-This chapter describes Scheme’s built-in procedures. The procedures force, promise?, and
+This chapter describes Scheme's built-in procedures. The procedures force, promise?, and
make-promise are intimately associated with the expression types delay and delay-force,
and are described with them in section 4.2.5. In the same way, the procedure
make-parameter is intimately associated with the expression type parameterize, and is
@@ -3225,7 +3225,7 @@ The eqv? procedure returns #t if:
obj2 are both inexact numbers such that they are numerically equal (in the sense of =)
and they yield the same results (in the sense of eqv?) when passed as arguments to any
- other procedure that can be defined as a finite composition of Scheme’s standard
+ other procedure that can be defined as a finite composition of Scheme's standard
arithmetic procedures, provided it does not result in a NaN value.
* obj1 and
@@ -3278,7 +3278,7 @@ The eqv? procedure returns #f if:
obj2 are both inexact numbers such that either they are numerically unequal (in the
sense of =), or they do not yield the same results (in the sense of eqv?) when passed as
arguments to any other procedure that can be defined as a finite composition of
- Scheme’s standard arithmetic procedures, provided it does not result in a NaN value. As
+ Scheme's standard arithmetic procedures, provided it does not result in a NaN value. As
an exception, the behavior of eqv? is unspecified when both
obj1 and
@@ -3414,8 +3414,8 @@ would, but may return #f in some cases where eqv? would return #t.
On symbols, booleans, the empty list, pairs, and records, and also on non-empty strings,
vectors, and bytevectors, eq? and eqv? are guaranteed to have the same behavior. On
-procedures, eq? must return true if the arguments’ location tags are equal. On numbers
-and characters, eq?’s behavior is implementation-dependent, but it will always return
+procedures, eq? must return true if the arguments' location tags are equal. On numbers
+and characters, eq?'s behavior is implementation-dependent, but it will always return
either true or false. On empty strings, empty vectors, and empty bytevectors, eq? may also
behave differently from eqv?.
@@ -3511,11 +3511,11 @@ For example, 3 is an integer. Therefore 3 is also a rational, a real, and a comp
The same is true of the Scheme numbers that model 3. For Scheme numbers, these types
are defined by the predicates number?, complex?, real?, rational?, and integer?.
-There is no simple relationship between a number’s type and its representation inside a
+There is no simple relationship between a number's type and its representation inside a
computer. Although most implementations of Scheme will offer at least two different
representations of 3, these different representations denote the same integer.
-Scheme’s numerical operations treat numbers as abstract data, as independent of their
+Scheme's numerical operations treat numbers as abstract data, as independent of their
representation as possible. Although an implementation of Scheme may use multiple
internal representations of numbers, this ought not to be apparent to a casual
programmer writing simple programs.
@@ -3644,7 +3644,7 @@ representation available must be used. For example, the value of (sqrt 4) should
in an implementation that provides both single and double precision floating point
numbers it may be the latter but must not be the former.
-It is the programmer’s responsibility to avoid using inexact number objects with
+It is the programmer's responsibility to avoid using inexact number objects with
magnitude or significand too large to be represented in the implementation.
In addition, implementations may distinguish special numbers called positive infinity,
@@ -4319,7 +4319,7 @@ of atan computes (angle (make-rectangular
x
-y)) (see below), even in implementations that don’t support complex numbers.
+y)) (see below), even in implementations that don't support complex numbers.
In general, the mathematical functions log, arcsine, arc-cosine, and arctangent are
multiply defined. The value of log z is defined to be the one whose imaginary part lies in
@@ -4769,7 +4769,7 @@ read procedure, the forms '<datum>, `<datum>, ,<datum>, and ,@@<datum> denote
two-element lists whose first elements are the symbols quote, quasiquote, unquote, and
unquote-splicing, respectively. The second element in each case is <datum>. This
convention is supported so that arbitrary Scheme programs can be represented as lists.
-That is, according to Scheme’s grammar, every <expression> is also a <datum> (see
+That is, according to Scheme's grammar, every <expression> is also a <datum> (see
section 7.1.2). Among other things, this permits the use of the read procedure to parse
Scheme programs. See section 3.3.
@@ -5635,7 +5635,7 @@ characters. In that case, string<? would be the lexicographic ordering on string
by the ordering char<? on characters, and if the two strings differ in length but are the
same up to the length of the shorter string, the shorter string would be considered to be
lexicographically less than the longer string. However, it is also permitted to use the
-natural ordering imposed by the implementation’s internal representation of strings, or
+natural ordering imposed by the implementation's internal representation of strings, or
a more complex locale-specific ordering.
In all cases, a pair of strings must satisfy exactly one of string<?, string=?, and string>?,
@@ -6628,7 +6628,7 @@ Rationale: A common use of call-with-current-continuation is for structured,
continuation might take the result, print it on the screen, prompt for the next input,
evaluate it, and so on forever. Most of the time the continuation includes actions
specified by user code, as in a continuation that will take the result, multiply it by the
- value stored in a local variable, add seven, and give the answer to the REPL’s
+ value stored in a local variable, add seven, and give the answer to the REPL's
continuation to be printed. Normally these ubiquitous continuations are hidden
behind the scenes and programmers do not think much about them. On rare
occasions, however, a programmer needs to deal with continuations explicitly. The
@@ -6763,7 +6763,7 @@ after is unspecified.
@node Exceptions
@section Exceptions
-This section describes Scheme’s exception-handling and exception-raising procedures.
+This section describes Scheme's exception-handling and exception-raising procedures.
For the concept of Scheme exceptions, see section 1.3.2. See also 4.2.7 for the guard
syntax.
@@ -7051,7 +7051,7 @@ proc are returned. If
proc does not return, then the port must not be closed automatically unless it is possible
to prove that the port will never again be used for a read or write operation.
- Rationale: Because Scheme’s escape procedures have unlimited extent, it is possible
+ Rationale: Because Scheme's escape procedures have unlimited extent, it is possible
to escape from the current continuation but later to resume it. If implementations
were permitted to close the port on any escape from the current continuation, then
it would be impossible to write portable code using both
@@ -7230,7 +7230,7 @@ that do not have datum representations.
If an end of file is encountered in the input before any characters are found that can
begin an object, then an end-of-file object is returned. The port remains open, and
further attempts to read will also return an end-of-file object. If an end of file is
-encountered after the beginning of an object’s external representation, but the external
+encountered after the beginning of an object's external representation, but the external
representation is incomplete and therefore not parsable, an error that satisfies
read-error? is signaled.
@@ -7590,7 +7590,7 @@ obj into an appropriate exit value for the operating system, if possible.
The exit procedure must not signal an exception or return to its continuation.
Note: Because of the requirement to run handlers, this procedure is not just the
- operating system’s exit procedure.
+ operating system's exit procedure.
process-context library procedure: (emergency-exit)
process-context library procedure: (emergency-exit obj)
@@ -7613,7 +7613,7 @@ the value of the environment variable
name, or #f if the named environment variable is not found. It may use locale information
to encode the name and decode the value of the environment variable. It is an error if
-get-environment-variable can’t decode the value. It is also an error to mutate the
+get-environment-variable can't decode the value. It is also an error to mutate the
resulting string.
@example
@@ -8097,7 +8097,7 @@ If P is a program in which all variables are defined before being referenced or
then the meaning of P is
calE [ [ ((lambda (I*) ] ]
- P’)
+ P')
<undefined>
…)
@@ -9034,7 +9034,7 @@ The (scheme load) library exports procedures for loading Scheme expressions from
@subsection Process-Context Library
The (scheme process-context) library exports procedures for accessing with the
-program’s calling context.
+program's calling context.
command-line emergency-exit
exit
@@ -9665,15 +9665,15 @@ which models a damped oscillator.
Interpretation of Computer Programs, second edition. MIT Press, Cambridge,
1996.
[2] Alan Bawden and Jonathan Rees. Syntactic closures. In Proceedings of the 1988
- ACM Symposium on Lisp and Functional Programming, pages 86–95.
+ ACM Symposium on Lisp and Functional Programming, pages 86--95.
[3] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels.
http://www.ietf.org/rfc/rfc2119.txt, 1997.
[4] Robert G. Burger and R. Kent Dybvig. Printing floating-point numbers quickly
- and accurately. In Proceedings of the ACM SIGPLAN ’96 Conference on
- Programming Language Design and Implementation, pages 108–116.
+ and accurately. In Proceedings of the ACM SIGPLAN '96 Conference on
+ Programming Language Design and Implementation, pages 108--116.
[5] William Clinger. How to read floating point numbers accurately. In Proceedings
- of the ACM SIGPLAN ’90 Conference on Programming Language Design and
- Implementation, pages 92–101. Proceedings published as SIGPLAN Notices 25
+ of the ACM SIGPLAN '90 Conference on Programming Language Design and
+ Implementation, pages 92--101. Proceedings published as SIGPLAN Notices 25
(6), June 1990.
[6] William Clinger. Proper Tail Recursion and Space Efficiency. In Proceedings of
the 1998 ACM Conference on Programming Language Design and Implementation,
@@ -9685,13 +9685,13 @@ which models a damped oscillator.
published as Computer Science Department Technical Report 174, Indiana
University, June 1985.
[9] William Clinger and Jonathan Rees. Macros that work. In Proceedings of the
- 1991 ACM Conference on Principles of Programming Languages, pages 155–162.
+ 1991 ACM Conference on Principles of Programming Languages, pages 155--162.
[10] William Clinger and Jonathan Rees, editors. The revised4 report on the
- algorithmic language Scheme. In ACM Lisp Pointers 4(3), pages 1–55, 1991.
+ algorithmic language Scheme. In ACM Lisp Pointers 4(3), pages 1--55, 1991.
[11] Mark Davis. Unicode Standard Annex #44, Unicode Character Database.
http://unicode.org/reports/tr44/, 2010.
[12] R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in
- Scheme. Lisp and Symbolic Computation 5(4):295–326, 1993.
+ Scheme. Lisp and Symbolic Computation 5(4):295--326, 1993.
[13] Marc Feeley. SRFI 4: Homogeneous Numeric Vector Datatypes.
http://srfi.schemers.org/srfi-4/, 1999.
[14] Carol Fessenden, William Clinger, Daniel P. Friedman, and Christopher
@@ -9701,7 +9701,7 @@ which models a damped oscillator.
reference manual. Indiana University Computer Science Technical Report 153,
January 1985.
[16] Martin Gardner. Mathematical Games: The fantastic combinations of John
- Conway’s new solitaire game ``Life.'' In Scientific American, 223:120–123, October
+ Conway's new solitaire game ``Life.'' In Scientific American, 223:120--123, October
1970.
[17] IEEE Standard 754-2008. IEEE Standard for Floating-Point Arithmetic. IEEE, New
York, 2008.
@@ -9716,24 +9716,24 @@ which models a damped oscillator.
PhD thesis, Indiana University, August 1986.
[22] Eugene E. Kohlbecker Jr., Daniel P. Friedman, Matthias Felleisen, and Bruce
Duba. Hygienic macro expansion. In Proceedings of the 1986 ACM Conference on
- Lisp and Functional Programming, pages 151–161.
+ Lisp and Functional Programming, pages 151--161.
[23] John McCarthy. Recursive Functions of Symbolic Expressions and Their
- Computation by Machine, Part I. Communications of the ACM 3(4):184–195, April
+ Computation by Machine, Part I. Communications of the ACM 3(4):184--195, April
1960.
[24] MIT Department of Electrical Engineering and Computer Science. Scheme
manual, seventh edition. September 1984.
[25] Peter Naur et al. Revised report on the algorithmic language Algol 60.
- Communications of the ACM 6(1):1–17, January 1963.
- [26] Paul Penfield, Jr. Principal values and branch cuts in complex APL. In APL ’81
- Conference Proceedings, pages 248–256. ACM SIGAPL, San Francisco, September
+ Communications of the ACM 6(1):1--17, January 1963.
+ [26] Paul Penfield, Jr. Principal values and branch cuts in complex APL. In APL '81
+ Conference Proceedings, pages 248--256. ACM SIGAPL, San Francisco, September
1981. Proceedings published as APL Quote Quad 12(1), ACM, September 1981.
[27] Jonathan A. Rees and Norman I. Adams IV. T: A dialect of Lisp or, lambda: The
ultimate software tool. In Conference Record of the 1982 ACM Symposium on Lisp
- and Functional Programming, pages 114–122.
+ and Functional Programming, pages 114--122.
[28] Jonathan A. Rees, Norman I. Adams IV, and James R. Meehan. The T manual,
fourth edition. Yale University Computer Science Department, January 1984.
[29] Jonathan Rees and William Clinger, editors. The revised3 report on the
- algorithmic language Scheme. In ACM SIGPLAN Notices 21(12), pages 37–79,
+ algorithmic language Scheme. In ACM SIGPLAN Notices 21(12), pages 37--79,
December 1986.
[30] Olin Shivers. SRFI 1: List Library. http://srfi.schemers.org/srfi-1/, 1999.
[31] Guy Lewis Steele Jr. and Gerald Jay Sussman. The revised report on Scheme, a