Previous: Other language changes since R5RS, Up: Language changes [Index]
This section enumerates the incompatibilities between R7RS and the “Revised6 report” [R6RS] and its accompanying Standard Libraries document.
This list is not authoritative, and is possibly incomplete.
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 be wrapped in a begin
library declaration.
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.
even
/odd
example
given in R6RS is not allowed.
real-valued?
, rational-valued?
,
and integer-valued
? were not. The R6RS division operators
div
, mod
, div-and-mod
, div0
, mod0
and div0-and-mod0
are not provided.
map
and for-each
have been changed to
use the SRFI 1 [srfi1] early termination behavior. Likewise, assoc
and
member
take an optional equal?
argument as in SRFI 1,
instead of the separate assp
and memp
procedures of
R6RS.
quasiquote
clarifications have been adopted, with
the exception of multiple-argument unquote
and
unquote-splicing
.
u8
) procedures have been provided. The lexical syntax uses
#u8
for compatibility with SRFI 4 [srfi4], rather than the R6RS
#vu8
style.
when
and unless
are provided, but
their result is left unspecified.
Previous: Other language changes since R5RS, Up: Language changes [Index]