commit f6b9e8cb856eae7cd55efc1f55df1cf5d15a0903
parent ded2cdb286d6516cad54df4d19379b403390c557
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date: Sun, 28 Jan 2024 16:11:49 -0500
Delete junk character throughout.
Diffstat:
1 file changed, 139 insertions(+), 139 deletions(-)
diff --git a/doc/r7rs-small/r7rs-small.texinfo b/doc/r7rs-small/r7rs-small.texinfo
@@ -47,7 +47,7 @@ December 19, 2022
The report gives a defining description of the programming language Scheme. Scheme is
a statically scoped and properly tail recursive dialect of the Lisp programming language
-[23] invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have
+[23] invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have
exceptionally clear and simple semantics and few different ways to form expressions. A
wide variety of programming paradigms, including imperative, functional, and
object-oriented styles, find convenient expression in Scheme.
@@ -74,9 +74,9 @@ Appendix B provides a list of optional but standardized implementation feature n
The report concludes with a list of references and an alphabetic index.
- Note: The editors of the R5RS and R6RS reports are listed as authors of this report in
+ Note: The editors of the R5RS and R6RS reports are listed as authors of this report in
recognition of the substantial portions of this report that are copied directly from
- R5RS and R6RS. There is no intended implication that those editors, individually or
+ R5RS and R6RS. There is no intended implication that those editors, individually or
collectively, support or do not support this report.
@menu
@@ -227,7 +227,7 @@ with variables and expressions as well as with values.
All objects created in the course of a Scheme computation, including procedures and
continuations, have unlimited extent. No Scheme object is ever destroyed. The reason
-that implementations of Scheme do not (usually!) run out of storage is that they are
+that implementations of Scheme do not (usually!) run out of storage is that they are
permitted to reclaim the storage occupied by an object if they can prove that the object
cannot possibly matter to any future computation. Implementations of Scheme are
required to be properly tail-recursive. This allows the execution of an iterative
@@ -602,7 +602,7 @@ single period) used in the list syntax is not an identifier.
All implementations of Scheme must support the following extended identifier
characters:
-@code{! $ % & * + - . / : < = > ? @ ^ _ ~}
+@code{! $ % & * + - . / : < = > ? @ ^ _ ~}
Alternatively, an identifier can be represented by a sequence
of zero or more characters enclosed within vertical lines (|), analogous to string literals.
@@ -680,7 +680,7 @@ whitespace.
A semicolon (;) indicates the start of a line comment.The comment continues to the end
of the line on which the semicolon appears. Another way to indicate a comment is to
-prefix a <datum> (cf. section 7.1.2) with #;and optional <whitespace>. The comment
+prefix a <datum> (cf. section 7.1.2) with #;and optional <whitespace>. The comment
consists of the comment prefix #;, the space, and the <datum> together. This notation is
useful for “commenting out” sections of code.
@@ -708,7 +708,7 @@ For a description of the notations used for numbers, see section 6.2.
@table @t
-@item @t{. + -}
+@item @t{. + -}
These are used in numbers, and can also occur anywhere in an identifier. A delimited
plus or minus sign by itself is also an identifier. A delimited period (not occurring
within a number or identifier) is used in the notation for pairs (section 6.4), and to
@@ -882,7 +882,7 @@ consisting of the integers 8 and 13 is the sequence of characters “(8 13)”.
The external representation of an object is not necessarily unique. The integer 28 also has
representations “#e28.000” and “#x1c”, and the list in the previous paragraph also has the
-representations “( 08 13 )” and “(8 . (13 . ()))” (see section 6.4).
+representations “( 08 13 )” and “(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
@@ -1167,7 +1167,7 @@ they need not be quoted.
@end example
As noted in section 3.4, it is an error to attempt to alter a constant (i.e. the value
-of a literal expression) using a mutation procedure like set-car! or string-set!.
+of a literal expression) using a mutation procedure like set-car! or string-set!.
@node Procedure calls
@subsection Procedure calls
@@ -1253,7 +1253,7 @@ will be returned as the results of the procedure call.
called, the sequence of actual arguments is converted into a newly allocated list, and
the list is stored in a fresh location that is bound to <variable>.
-* (<variable1> … <variablen> . <variablen+1>): If a space-delimited period precedes the last
+* (<variable1> … <variablen> . <variablen+1>): If a space-delimited period precedes the last
variable, then the procedure takes n or more arguments, where n is the number of
formal arguments before the period (it is an error if there is not at least one). The value
stored in the binding of the last variable will be a newly allocated list of the actual
@@ -1304,7 +1304,7 @@ syntax: (set! <variable> <expression>)
Semantics: <Expression> is evaluated, and the resulting value is stored in the location to
which <variable> is bound. It is an error if <variable> is not bound either in some
-regionenclosing the set! expression or else globally. The result of the set! expression is
+regionenclosing the set! expression or else globally. The result of the set! expression is
unspecified.
@example
@@ -2523,7 +2523,7 @@ them. The simplest kind of variable definition takes one of the following forms:
(define <variable>
(lambda (<formals>) <body>)).
-* (define (<variable> . <formal>) <body>)
+* (define (<variable> . <formal>) <body>)
<Formal> is a single variable. This form is equivalent to
@@ -2542,10 +2542,10 @@ them. The simplest kind of variable definition takes one of the following forms:
At the outermost level of a program, a definition
(define <variable> <expression>)has essentially the same effect as the assignment
-expression (set! <variable> <expression>)if <variable> is bound to a non-syntax value.
+expression (set! <variable> <expression>)if <variable> is bound to a non-syntax value.
However, if <variable> is not bound, or is a syntactic keyword, then the definition will bind
<variable> to a new location before performing the assignment, whereas it would be an
-error to perform a set! on an unboundvariable.
+error to perform a set! on an unboundvariable.
(define add3
(lambda (x) (+ x 3)))
@@ -2979,7 +2979,7 @@ the object are fresh.
A predicate is a procedure that always returns a boolean value (#t or #f). An equivalence
predicate is the computational analogue of a mathematical equivalence relation; it is
symmetric, reflexive, and transitive. Of the equivalence predicates described in this
-section, eq? is the finest or most discriminating, equal? is the coarsest, and eqv? is
+section, eq? is the finest or most discriminating, equal? is the coarsest, and eqv? is
slightly less discriminating than eq?.
procedure: (eqv?
@@ -3122,7 +3122,7 @@ value returned by eqv? must be a boolean.
(eqv? +nan.0 +nan.0) ⟹ unspecified Note that (eqv? 0.0 -0.0) will return #f if negative zero
is distinguished, and #t if negative zero is not distinguished.
-The next set of examples shows the use of eqv? with procedures that have local state. The
+The next set of examples shows the use of eqv? with procedures that have local state. The
gen-counter procedure must return a distinct procedure every time, since each
procedure has its own internal counter. The gen-loser procedure, however, returns
operationally equivalent procedures each time, since the local state does not affect the
@@ -3180,13 +3180,13 @@ obj1
obj2)
-The eq? procedure is similar to eqv? except that in some cases it is capable of discerning
-distinctions finer than those detectable by eqv?. It must always return #f when eqv? also
-would, but may return #f in some cases where eqv? would return #t.
+The eq? procedure is similar to eqv? except that in some cases it is capable of discerning
+distinctions finer than those detectable by eqv?. It must always return #f when eqv? also
+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
+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
either true or false. On empty strings, empty vectors, and empty bytevectors, eq? may also
behave differently from eqv?.
@@ -3209,10 +3209,10 @@ behave differently from eqv?.
(let ((p (lambda (x) x)))
(eq? p p)) ⟹ #t
- Rationale: It will usually be possible to implement eq? much more efficiently than
+ Rationale: It will usually be possible to implement eq? much more efficiently than
eqv?, for example, as a simple pointer comparison instead of as some more
- complicated operation. One reason is that it is not always possible to compute eqv?
- of two numbers in constant time, whereas eq? implemented as pointer comparison
+ complicated operation. One reason is that it is not always possible to compute eqv?
+ of two numbers in constant time, whereas eq? implemented as pointer comparison
will always finish in constant time.
procedure: (equal?
@@ -3228,7 +3228,7 @@ trees are equal (in the sense of equal?) as ordered trees, and #f otherwise. It
same as eqv? when applied to booleans, symbols, numbers, characters, ports,
procedures, and the empty list. If two objects are eqv?, they must be equal? as well. In all
other cases, equal? may return either #t or #f. Even if its arguments are circular data
-structures, equal? must always terminate.
+structures, equal? must always terminate.
(equal? 'a 'a) ⟹ #t
(equal? '(a) '(a)) ⟹ #t
@@ -3270,7 +3270,7 @@ numbers.
Mathematically, numbers are arranged into a tower of subtypes in which each level is a
subset of the level above it:
- number
+ number
complex number
real number
rational number
@@ -4413,7 +4413,7 @@ restriction may be reported.
These procedures implement the natural one-to-one correspondence between exact and
inexact integers throughout an implementation-dependent range. See section 6.2.3.
- Note: These procedures were known in R5RS as exact->inexact and inexact->exact,
+ Note: These procedures were known in R5RS as exact->inexact and inexact->exact,
respectively, but they have always accepted arguments of any exactness. The new
names are clearer and shorter, as well as being compatible with R6RS.
@@ -4507,7 +4507,7 @@ string.
The rules used by a particular implementation for string->number must also be
applied to read and to the routine that reads programs, in order to maintain
consistency between internal numeric processing, I/O, and the processing of
- programs. As a consequence, the R5RS permission to return #f when
+ programs. As a consequence, the R5RS permission to return #f when
string has an explicit radix prefix has been withdrawn.
@@ -4575,7 +4575,7 @@ Returns #t if all the arguments are #t or all are #f.
A pair (sometimes called a dotted pair) is a record structure with two fields called the car
and cdr fields (for historical reasons). Pairs are created by the procedure cons. The car
and cdr fields are accessed by the procedures car and cdr. The car and cdr fields are
-assigned by the procedures set-car! and set-cdr!.
+assigned by the procedures set-car! and set-cdr!.
Pairs are used primarily to represent lists. A list can be defined recursively as either the
empty listor a pair whose cdr is a list. More precisely, the set of lists is defined as the
@@ -4611,7 +4611,7 @@ length is zero.
The most general notation (external representation) for Scheme pairs is the “dotted”
notation (
-c1 .
+c1 .
c2)
@@ -4619,8 +4619,8 @@ where
c1 is the value of the car field and
-c2 is the value of the cdr field. For example (4 . 5) is a pair whose car is 4 and whose cdr is
-5. Note that (4 . 5) is the external representation of a pair, not an expression that
+c2 is the value of the cdr field. For example (4 . 5) is a pair whose car is 4 and whose cdr is
+5. Note that (4 . 5) is the external representation of a pair, not an expression that
evaluates to a pair.
A more streamlined notation can be used for lists: the elements of the list are simply
@@ -4936,7 +4936,7 @@ list. If
obj does not occur in
-list, then #f (not the empty list) is returned. The memq procedure uses eq? to compare
+list, then #f (not the empty list) is returned. The memq procedure uses eq? to compare
obj with the elements of
@@ -4973,12 +4973,12 @@ obj, and returns that pair. If no pair in
alist has
-obj as its car, then #f (not the empty list) is returned. The assq procedure uses eq? to
+obj as its car, then #f (not the empty list) is returned. The assq procedure uses eq? to
compare
obj with the car fields of the pairs in
-alist, while assv uses eqv? and assoc uses
+alist, while assv uses eqv? and assoc uses
compare if given and equal? otherwise.
@@ -5277,8 +5277,8 @@ char2
char3 …)
-These procedures are similar to char=? et cetera, but they treat upper case and lower
-case letters as the same. For example, (char-ci=? #\A #\a) returns #t.
+These procedures are similar to char=? et cetera, but they treat upper case and lower
+case letters as the same. For example, (char-ci=? #\A #\a) returns #t.
Specifically, these procedures behave as if char-foldcase were applied to their
arguments before they were compared.
@@ -5590,7 +5590,7 @@ These predicates are required to be transitive.
These procedures compare strings in an implementation-defined way. One approach is
to make them the lexicographic extensions to strings of the corresponding orderings on
characters. In that case, string<? would be the lexicographic ordering on strings induced
-by the ordering char<? on characters, and if the two strings differ in length but are the
+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
@@ -5654,7 +5654,7 @@ start and
end. list->string returns a newly allocated string formed from the elements in the list
list. In both procedures, order is preserved. string->list and list->string are inverses so
-far as equal? is concerned.
+far as equal? is concerned.
procedure: (string-copy string)
procedure: (string-copy string start)
@@ -6164,7 +6164,7 @@ end and returns the corresponding bytevector.
This section describes various primitive procedures which control the flow of program
execution in special ways. Procedures in this section that invoke procedure arguments
always do so in the same dynamic environment as the call of the original procedure. The
-procedure? predicate is also described here.
+procedure? predicate is also described here.
procedure: (procedure? obj)
@@ -6808,7 +6808,7 @@ r5rs library procedure: (scheme-report-environment version)
If
version is equal to 5, corresponding to R5RS, scheme-report-environment returns a
-specifier for an environment that contains only the bindings defined in the R5RS library.
+specifier for an environment that contains only the bindings defined in the R5RS library.
Implementations must support this value of
version.
@@ -6831,7 +6831,7 @@ If
version is equal to 5, corresponding to R5RS, the null-environment procedure returns a
specifier for an environment that contains only the bindings for all syntactic keywords
-defined in the R5RS library. Implementations must support this value of
+defined in the R5RS library. Implementations must support this value of
version.
@@ -7177,8 +7177,8 @@ port is at end of file then char-ready? returns #t.
Rationale: The char-ready? procedure exists to make it possible for a program to
accept characters from interactive ports without getting stuck waiting for input.
Any input editors associated with such ports must ensure that characters whose
- existence has been asserted by char-ready? cannot be removed from the input. If
- char-ready? were to return #f at end of file, a port at end of file would be
+ existence has been asserted by char-ready? cannot be removed from the input. If
+ char-ready? were to return #f at end of file, a port at end of file would be
indistinguishable from an interactive port that has no ready characters.
procedure: (read-string k)
@@ -7221,7 +7221,7 @@ the given
port is guaranteed not to hang. If the
-port is at end of file then u8-ready? returns #t.
+port is at end of file then u8-ready? returns #t.
procedure: (read-bytevector k)
procedure: (read-bytevector k port)
@@ -7628,12 +7628,12 @@ sequence are equivalent to identifiers containing the corresponding character.
<line ending> ⟶<newline> ∣<return> <newline>
∣<return>
<comment> ⟶; ⟨all subsequent characters up to a
- line ending⟩ ∣<nested comment>
+ line ending⟩ ∣<nested comment>
∣#; <intertoken space> <datum>
<nested comment> ⟶#| <comment text>
<comment cont>* |#
<comment text> ⟶⟨character sequence not containing
- #| or |#⟩
+ #| or |#⟩
<comment cont> ⟶<nested comment> <comment text>
<directive> ⟶#!fold-case ∣#!no-fold-case Note that it is ungrammatical to follow a
<directive> with anything but a <delimiter> or the end of file.
@@ -7733,7 +7733,7 @@ string that parses as an <expression> will also parse as a <datum>.
∣<character> ∣<string> ∣<symbol> ∣<bytevector>
<symbol> ⟶<identifier>
<compound datum> ⟶<list> ∣<vector> ∣<abbreviation>
-<list> ⟶(<datum>*) ∣(<datum>+ . <datum>)
+<list> ⟶(<datum>*) ∣(<datum>+ . <datum>)
<abbreviation> ⟶<abbrev prefix> <datum>
<abbrev prefix> ⟶' ∣` ∣, ∣,@
<vector> ⟶#(<datum>*)
@@ -7765,7 +7765,7 @@ them have been redefined or shadowed.
<operand> ⟶<expression>
<lambda expression> ⟶(lambda <formals> <body>)
<formals> ⟶(<identifier>*) ∣<identifier>
-∣(<identifier>+ . <identifier>)
+∣(<identifier>+ . <identifier>)
<body> ⟶<definition>* <sequence>
<sequence> ⟶<command>* <expression>
<command> ⟶<expression>
@@ -7844,7 +7844,7 @@ following rules for D = 1, 2, 3, …, where D is the nesting depth.
∣<vector qq template D>
∣<unquotation D>
<list qq template D> ⟶(<qq template or splice D>*)
-∣(<qq template or splice D>+ . <qq template D>)
+∣(<qq template or splice D>+ . <qq template D>)
∣'<qq template D>
∣<quasiquotation D + 1>
<vector qq template D> ⟶#(<qq template or splice D>*)
@@ -7865,7 +7865,7 @@ The interpretation as an <unquotation> or <splicing unquotation D> takes precede
<transformer spec> ⟶ (syntax-rules (<identifier>*) <syntax rule>*)
∣(syntax-rules <identifier> (<identifier>*)
- <syntax rule>*)
+ <syntax rule>*)
<syntax rule> ⟶(<pattern> <template>)
<pattern> ⟶<pattern identifier>
∣<underscore>
@@ -7873,7 +7873,7 @@ The interpretation as an <unquotation> or <splicing unquotation D> takes precede
∣(<pattern>+ . <pattern>)
∣(<pattern>* <pattern> <ellipsis> <pattern>*)
∣(<pattern>* <pattern> <ellipsis> <pattern>*
- . <pattern>)
+ . <pattern>)
∣#(<pattern>*)
∣#(<pattern>* <pattern> <ellipsis> <pattern>*)
∣<pattern datum>
@@ -7884,7 +7884,7 @@ The interpretation as an <unquotation> or <splicing unquotation D> takes precede
∣<bytevector>
<template> ⟶<pattern identifier>
∣(<template element>*)
-∣(<template element>+ . <template>)
+∣(<template element>+ . <template>)
∣#(<template element>*)
∣<template datum>
<template element> ⟶<template>
@@ -7906,10 +7906,10 @@ The interpretation as an <unquotation> or <splicing unquotation D> takes precede
∣<syntax definition>
∣(define-values <formals> <body>)
∣(define-record-type <identifier>
- <constructor> <identifier> <field spec>*)
+ <constructor> <identifier> <field spec>*)
∣(begin <definition>*)
<def formals> ⟶<identifier>*
-∣<identifier>* . <identifier>
+∣<identifier>* . <identifier>
<constructor> ⟶(<identifier> <field name>*)
<field spec> ⟶(<field name> <accessor>)
∣(<field name> <accessor> <mutator>)
@@ -8560,12 +8560,12 @@ convenient abbreviations.
append apply
assoc assq
assv begin
- binary-port? boolean=?
- boolean? bytevector
+ binary-port? boolean=?
+ boolean? bytevector
bytevector-append bytevector-copy
bytevector-copy! bytevector-length
bytevector-u8-ref bytevector-u8-set!
- bytevector? caar
+ bytevector? caar
cadr
call-with-current-continuation
call-with-port call-with-values
@@ -8573,12 +8573,12 @@ convenient abbreviations.
case cdar
cddr cdr
ceiling char->integer
- char-ready? char<=?
- char<? char=?
- char>=? char>?
- char? close-input-port
+ char-ready? char<=?
+ char<? char=?
+ char>=? char>?
+ char? close-input-port
close-output-port close-port
- complex? cond
+ complex? cond
cond-expand cons
current-error-port current-input-port
current-output-port define
@@ -8586,13 +8586,13 @@ convenient abbreviations.
define-values denominator
do dynamic-wind
else eof-object
- eof-object? eq?
- equal? eqv?
+ eof-object? eq?
+ equal? eqv?
error error-object-irritants
error-object-message error-object?
- even? exact
+ even? exact
exact-integer-sqrt exact-integer?
- exact? expt
+ exact? expt
features file-error?
floor floor-quotient
floor-remainder floor/
@@ -8601,9 +8601,9 @@ convenient abbreviations.
get-output-string guard
if include
include-ci inexact
- inexact? input-port-open?
- input-port? integer->char
- integer? lambda
+ inexact? input-port-open?
+ input-port? integer->char
+ integer? lambda
lcm length
let let*
let*-values let-syntax
@@ -8619,25 +8619,25 @@ convenient abbreviations.
max member
memq memv
min modulo
- negative? newline
+ negative? newline
not null?
number->string number?
numerator odd?
open-input-bytevector open-input-string
open-output-bytevector open-output-string
or output-port-open?
- output-port? pair?
+ output-port? pair?
parameterize peek-char
peek-u8 port?
- positive? procedure?
+ positive? procedure?
quasiquote quote
quotient raise
raise-continuable rational?
rationalize read-bytevector
read-bytevector! read-char
- read-error? read-line
+ read-error? read-line
read-string read-u8
- real? remainder
+ real? remainder
reverse round
set! set-car!
set-cdr! square
@@ -8649,15 +8649,15 @@ convenient abbreviations.
string-for-each string-length
string-map string-ref
string-set! string<=?
- string<? string=?
- string>=? string>?
- string? substring
+ string<? string=?
+ string>=? string>?
+ string? substring
symbol->string symbol=?
- symbol? syntax-error
+ symbol? syntax-error
syntax-rules textual-port?
truncate truncate-quotient
truncate-remainder truncate/
- u8-ready? unless
+ u8-ready? unless
unquote unquote-splicing
utf8->string values
vector vector->list
@@ -8666,7 +8666,7 @@ convenient abbreviations.
vector-fill! vector-for-each
vector-length vector-map
vector-ref vector-set!
- vector? when
+ vector? when
with-exception-handler write-bytevector
write-char write-string
write-u8 zero?
@@ -8683,16 +8683,16 @@ The (scheme case-lambda) library exports the case-lambda syntax.
The (scheme char) library provides the procedures for dealing with characters that involve
potentially large tables when supporting all of Unicode.
- char-alphabetic? char-ci<=?
- char-ci<? char-ci=?
- char-ci>=? char-ci>?
+ char-alphabetic? char-ci<=?
+ char-ci<? char-ci=?
+ char-ci>=? char-ci>?
char-downcase char-foldcase
- char-lower-case? char-numeric?
+ char-lower-case? char-numeric?
char-upcase char-upper-case?
- char-whitespace? digit-value
- string-ci<=? string-ci<?
- string-ci=? string-ci>=?
- string-ci>? string-downcase
+ char-whitespace? digit-value
+ string-ci<=? string-ci<?
+ string-ci=? string-ci>=?
+ string-ci>? string-downcase
string-foldcase string-upcase
@node Complex Library
@@ -8754,8 +8754,8 @@ inexact values.
acos asin
atan cos
exp finite?
- infinite? log
- nan? sin
+ infinite? log
+ nan? sin
sqrt tan
@node Lazy Library
@subsection Lazy Library
@@ -8819,7 +8819,7 @@ The (scheme write) library provides procedures for writing Scheme objects.
The (scheme r5rs) library provides the identifiers defined by R5RS, except that
transcript-on and transcript-off are not present. Note that the exact and inexact
-procedures appear under their R5RS names inexact->exact and exact->inexact
+procedures appear under their R5RS names inexact->exact and exact->inexact
respectively. However, if an implementation does not provide a particular library such as
the complex library, the corresponding identifiers will not appear in this library either.
@@ -8835,7 +8835,7 @@ the complex library, the corresponding identifiers will not appear in this libra
asin assoc
assq assv
atan begin
- boolean? caaaar
+ boolean? caaaar
caaadr caaar
caadar caaddr
caadr caar
@@ -8855,16 +8855,16 @@ the complex library, the corresponding identifiers will not appear in this libra
cddddr cdddr
cddr cdr
ceiling char->integer
- char-alphabetic? char-ci<=?
- char-ci<? char-ci=?
- char-ci>=? char-ci>?
+ char-alphabetic? char-ci<=?
+ char-ci<? char-ci=?
+ char-ci>=? char-ci>?
char-downcase char-lower-case?
- char-numeric? char-ready?
+ char-numeric? char-ready?
char-upcase char-upper-case?
- char-whitespace? char<=?
- char<? char=?
- char>=? char>?
- char? close-input-port
+ char-whitespace? char<=?
+ char<? char=?
+ char>=? char>?
+ char? close-input-port
close-output-port complex?
cond cons
cos current-input-port
@@ -8873,15 +8873,15 @@ the complex library, the corresponding identifiers will not appear in this libra
denominator display
do dynamic-wind
else eof-object?
- eq? equal?
- eqv? eval
- even? exact->inexact
- exact? exp
+ eq? equal?
+ eqv? eval
+ even? exact->inexact
+ exact? exp
expt floor
for-each force
gcd if
imag-part inexact->exact
- inexact? input-port?
+ inexact? input-port?
integer->char integer?
interaction-environment lambda
lcm length
@@ -8890,7 +8890,7 @@ the complex library, the corresponding identifiers will not appear in this libra
letrec-syntax list
list->string list->vector
list-ref list-tail
- list? load
+ list? load
log magnitude
make-polar make-rectangular
make-string make-vector
@@ -8904,13 +8904,13 @@ the complex library, the corresponding identifiers will not appear in this libra
numerator odd?
open-input-file open-output-file
or output-port?
- pair? peek-char
- positive? procedure?
+ pair? peek-char
+ positive? procedure?
quasiquote quote
quotient rational?
rationalize read
read-char real-part
- real? remainder
+ real? remainder
reverse round
scheme-report-environment
set! set-car!
@@ -8918,16 +8918,16 @@ the complex library, the corresponding identifiers will not appear in this libra
sqrt string
string->list string->number
string->symbol string-append
- string-ci<=? string-ci<?
- string-ci=? string-ci>=?
- string-ci>? string-copy
+ string-ci<=? string-ci<?
+ string-ci=? string-ci>=?
+ string-ci>? string-copy
string-fill! string-length
string-ref string-set!
- string<=? string<?
- string=? string>=?
- string>? string?
+ string<=? string<?
+ string=? string>=?
+ string>? string?
substring symbol->string
- symbol? syntax-rules
+ symbol? syntax-rules
tan truncate
values vector
vector->list vector-fill!
@@ -8944,7 +8944,7 @@ An implementation may provide any or all of the feature identifiers listed below
cond-expand and features, but must not provide a feature identifier if it does not provide
the corresponding feature.
-r7rsAll R7RS Scheme implementations have this feature.
+r7rsAll R7RS Scheme implementations have this feature.
exact-closedThe algebraic operations +, -, *, and expt where the second argument is a
non-negative integer produce exact values given exact inputs.
@@ -9001,9 +9001,9 @@ This list is not authoritative, but is believed to be correct and complete.
* The syntax-rules construct now recognizes _ (underscore) as a wildcard, which means it
cannot be used as a syntax variable. It can still be used as a literal.
-* The R5RS procedures exact->inexact and inexact->exact have been renamed to their
- R6RS names, inexact and exact, respectively, as these names are shorter and more
- correct. The former names are still available in the R5RS library.
+* The R5RS procedures exact->inexact and inexact->exact have been renamed to their
+ R6RS names, inexact and exact, respectively, as these names are shorter and more
+ correct. The former names are still available in the R5RS library.
* The guarantee that string comparison (with string<? and the related predicates) is a
lexicographical extension of character comparison (with char<? and the related
@@ -9027,14 +9027,14 @@ report” [20].
This list is not authoritative, but is believed to be correct and complete.
-* Various minor ambiguities and unclarities in R5RS have been cleaned up.
+* Various minor ambiguities and unclarities in R5RS have been cleaned up.
* Libraries have been added as a new program structure to improve encapsulation and
sharing of code. Some existing and new identifiers have been factored out into
separate libraries. Libraries can be imported into other libraries or main programs, with
controlled exposure and renaming of identifiers. The contents of a library can be made
conditional on the features of the implementation on which it is to be used. There is an
- R5RS compatibility library.
+ R5RS compatibility library.
* The expressions types include, include-ci, and cond-expand have been added to the
base library; they have the same semantics as the corresponding library declarations.
@@ -9083,7 +9083,7 @@ This list is not authoritative, but is believed to be correct and complete.
all shared and circular structure. The display procedure must not loop on circular
objects.
-* The R6RS procedure eof-object has been added. Eof-objects are now required to be a
+* The R6RS procedure eof-object has been added. Eof-objects are now required to be a
disjoint type.
* Syntax definitions are now allowed wherever variable definitions are.
@@ -9111,11 +9111,11 @@ This list is not authoritative, but is believed to be correct and complete.
* The convenience conditionals when and unless have been added.
-* The behavior of eqv? on inexact numbers now conforms to the R6RS definition.
+* The behavior of eqv? on inexact numbers now conforms to the R6RS definition.
* When applied to procedures, eq? and eqv? are permitted to return different answers.
-* The R6RS procedures boolean=? and symbol=? have been added.
+* The R6RS procedures boolean=? and symbol=? have been added.
* Positive infinity, negative infinity, NaN, and negative inexact zero have been added to
the numeric tower as inexact values with the written representations +inf.0, -inf.0,
@@ -9168,7 +9168,7 @@ This list is not authoritative, but is believed to be correct and complete.
* Strings and symbols now allow mnemonic and numeric escape sequences, and the list
of named characters has been extended.
-* The procedures file-exists? and delete-file are available in the (scheme file) library.
+* The procedures file-exists? and delete-file are available in the (scheme file) library.
* An interface to the system environment, command line, and process exit status is
available in the (scheme process-context) library.
@@ -9196,16 +9196,16 @@ This section enumerates the incompatibilities between R7RS and the “Revised6 r
This list is not authoritative, and is possibly incomplete.
-* R7RS libraries begin with the keyword define-library rather than library in order to
- make them syntactically distinguishable from R6RS libraries. In R7RS terms, the body of
- an R6RS library consists of a single export declaration followed by a single import
+* R7RS libraries begin with the keyword define-library rather than library in order to
+ make them syntactically distinguishable from R6RS libraries. In R7RS terms, the body of
+ an R6RS library consists of a single export declaration followed by a single import
declaration, followed by commands and definitions. In R7RS, commands and definitions
are not permitted directly within the body: they have to be wrapped in a begin library
declaration.
-* There is no direct R6RS equivalent of the include, include-ci,
+* There is no direct R6RS equivalent of the include, include-ci,
include-library-declarations, or cond-expand library declarations. On the other hand,
- the R7RS library syntax does not support phase or version specifications.
+ the R7RS library syntax does not support phase or version specifications.
* The grouping of standardized identifiers into libraries is different from the R6RS
approach. In particular, procedures which are optional in R5RS either expressly or by
@@ -9215,11 +9215,11 @@ This list is not authoritative, and is possibly incomplete.
* No form of identifier syntax is provided.
* Internal syntax definitions are allowed, but uses of a syntax form cannot appear before
- its definition; the even/odd example given in R6RS is not allowed.
+ its definition; the even/odd example given in R6RS is not allowed.
-* The R6RS exception system was incorporated as-is, but the condition types have been
- left unspecified. In particular, where R6RS requires a condition of a specified type to be
- signaled, R7RS says only “it is an error”, leaving the question of signaling open.
+* The R6RS exception system was incorporated as-is, but the condition types have been
+ left unspecified. In particular, where R6RS requires a condition of a specified type to be
+ signaled, R7RS says only “it is an error”, leaving the question of signaling open.
* Full Unicode support is not required. Normalization is not provided. Character
comparisons are defined by Unicode, but string comparisons are
@@ -9227,9 +9227,9 @@ This list is not authoritative, and is possibly incomplete.
* The full numeric tower is optional as in R5RS, but optional support for IEEE infinities,
NaN, and was adopted from R6RS. Most clarifications on numeric results were also
- adopted, but the semantics of the R6RS procedures real?, rational?, and integer? were
- not adopted. (Note that the R5RS/R7RS semantics are available in R6RS using
- real-valued?, rational-valued?, and integer-valued?). The R6RS division operators div,
+ adopted, but the semantics of the R6RS procedures real?, rational?, and integer? were
+ not adopted. (Note that the R5RS/R7RS semantics are available in R6RS using
+ real-valued?, rational-valued?, and integer-valued?). The R6RS division operators div,
mod, div-and-mod, div0, mod0 and div0-and-mod0 are not provided.
* When a result is unspecified, it is still required to be a single value. However, non-final