This section enumerates the incompatibilities between R7RS and the “Revised6 report”46 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 147 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.
when and unless are provided, but their
result is left unspecified.
Michael Sperber, R. Kent Dybvig, Mathew Flatt, and Anton van Straaten, editors. Revised 6 Report on the Algorithmic Language Scheme. Cambridge University Press, 2010.
Olin Shivers. SRFI 1: List Library. https://srfi.schemers.org/srfi-1/, 1999.
William Clinger. SRFI 6: Basic String Ports. https://srfi.schemers.org/srfi-6/, 1999.
Marc Feeley. SRFI 4: Homogeneous Numeric Vector Datatypes. https://srfi.schemers.org/srfi-4/, 1999.