This section enumerates the additional differences between this report and the “Revised5 report”43.
This list is not authoritative, but is believed to be correct and complete.
include, include-ci, and
cond-expand have been added to the base library; they have the same
semantics as the corresponding library declarations.
raise,
raise-continuable or error, and can be handled with
with-exception-handler and the guard syntax. Any object
can specify an error condition; the implementation-defined conditions
signaled by error have a predicate to detect them and accessor
functions to retrieve the arguments passed to error. Conditions
signaled by read and by file-related procedures also have
predicates to detect them.
define-record-type of SRFI
944.
make-parameter, and
dynamically rebound with parameterize. The procedures
current-input-port and current-output-port are now
parameter objects, as is the newly introduced current-error-port.
read-line is provided to make line-oriented textual
input simpler.
flush-output-port is provided to allow minimal
control of output port buffering.
input-port-open? and output-port-open? return whether a port
is open or closed. The new procedure close-port now closes a port;
if the port has both input and output sides, both are closed.
write procedure now generates datum labels when applied to
circular objects. The new procedure write-simple never generates
labels; write-shared generates labels for all shared and circular
structure. The display procedure must not loop on circular
objects.
eof-object has been added. Eof-objects
are now required to be a disjoint type.
syntax-rules construct now allows the ellipsis symbol to be
specified explicitly instead of the default ‘...’, allows template
escapes with an ellipsis-prefixed list, and allows tail patterns to
follow an ellipsis pattern.
syntax-error syntax has been added as a way to signal immediate
and more informative errors when a macro is expanded.
letrec* binding construct has been added, and internal
define is specified in terms of it.
define-values, let-values, and let*-values. Standard
expression types which contain a sequence of expressions now permit
passing zero or more than one value to the continuations of all
non-final expressions of the sequence.
case conditional now supports => syntax analogous to
cond not only in regular clauses but in the else clause as
well.
case-lambda has been added in its own library.
when and unless have been added.
eqv? on inexact numbers now conforms to the
R6RS definition.
eq? and eqv? are permitted to
return different answers.
boolean=? and symbol=? have
been added.
log procedure now accepts a second argument specifying the
logarithm base.
map and for-each are now required to terminate
on the shortest argument list.
member and assoc now take an optional third
argument specifying the equality predicate to be used.
finite?, infinite?, nan?,
exact-integer?, square, and exact-integer-sqrt have
been added.
- and / procedures and the character and string
comparison predicates are now required to support more than two
arguments.
make-list, list-copy, list-set!,
string-map, string-for-each, string->vector,
vector-append, vector-copy, vector-map,
vector-for-each, vector->string, vector-copy!, and
string-copy! have been added to round out the sequence operations.
digit-value procedure has been
added to obtain the numerical value of a numeric character.
file-exists? and delete-file are available in
the (scheme file) library.
(scheme process-context) library.
(scheme time) library.
load procedure now accepts a second argument specifying the
environment to load into.
call-with-current-continuation procedure now has the synonym
call/cc.
dynamic-wind.
Richard Kelsey, William Clinger, and Jonathan Rees, editors. Revised 5 Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation, Vol. 11, No. 1, August 1998.
Richard Kelsey. SRFI 9: Defining Record Types. https://srfi.schemers.org/srfi-9/, 1999.
Andre van Tonder. SRFI 45: Primitives for Expressing Iterative Lazy Algorithms. https://srfi.schemers.org/srfi-45/, 2002.