The Scheme programming language was introduced in the 1975 paper, Scheme: An Interpreter for Extended Lambda Calculus. Since then it has been improved and extended through many rounds of standardization. The authoritative standards are the Scheme reports. Their names follow the convention Revisedn Report on the Algorithmic Language Scheme, abbreviated RnRS.
Most active Scheme implementations now support one or both of these standards. Writing code that works on both R6RS and R7RS is possible with some care.
Abbreviated R7RS, this standard brings back the simplicity of R5RS in the core language. Complexity has been moved into an optional large edition that is still a work in progress.
What's new: define-library
definitions
Official documents (PDF):
R7RS Small
Edition
Unofficial documents with errata corrected
(PDF):
R7RS Small
Edition
Unofficial documents with errata corrected (browse on
the web):
R7RS Small
Edition
Abbreviated R6RS, this standard abandoned the simplicity of R5RS and shipped a more full-featured language. Error situations are much more closely specified; a formal hierarchy of condition (exception) types is given.
This is the first standard with a library system, enabling programmers to share libraries that work out-of-the-box on multiple Scheme implementations.
What's new: library
definitions,
procedural macros via syntax-case
, condition
system, standard condition hierarchy, hash tables, custom
ports, explicit Unicode support, transcoding and endianness, a
much larger standard library.
Official documents (PDF):
R6RS, Standard Libraries, Non-Normative Appendices,
Rationale
Unofficial documents with errata corrected
(PDF):
R6RS,
Standard
Libraries, Non-Normative
Appendices, Rationale
Unofficial documents with errata corrected (browse on
the web):
R6RS,
Standard
Libraries, Non-Normative Appendices,
Rationale
These standards present the core Scheme syntax and semantics in essentially the same form as it now is.
Abbreviated R5RS, this standard comes closest to a Platonic Form of Scheme before later standards tackle the complexities of programming in the large with features such as libraries and exceptions.
Weighing in at 50 pages, the R5RS document is an object of reverence among programming language enthusiasts. It is a touchstone of the Scheme community and is considered an exemplar of a concise and expressive language specification in other communities as well.
What's new: syntax-rules
macros
Official documents (PDF): R5RS
Unofficial documents with errata corrected (browse on the web): R5RS
Abbreviated R4RS
Scheme starts really becoming Scheme with R4RS, e.g. hygienic macros were optional and in the appendix.
Official documents (PDF): R4RS
Abbreviated R3RS, this was the first Scheme report laid on the now-familiar TeX template.
Official documents (PDF): R3RS
See also: Scheme research, especially the lambda papers from MIT.