Next: Incompatibilities with R6RS, Previous: Incompatibilities with R5RS, Up: Language changes [Index]
This section enumerates the additional differences between this report and the “Revised5 report” [R5RS].
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 9 [srfi9].
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.
+inf.0
, -inf.0
, +nan.0
, and
-0.0
respectively. Support for them is not required. The
representation -nan.0
is synonymous with +nan.0
.
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.
#true
and #false
are now supported as well as
#t
and #f
.
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.
#;
to skip the
next datum, and #|
... |#
for nestable block comments.
#<
n>=
can be
referenced with #<
n>#
, allowing for reading and
writing of data with shared structure.
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
.
Next: Incompatibilities with R6RS, Previous: Incompatibilities with R5RS, Up: Language changes [Index]