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 theScheme reports. Their names follow the conventionRevisedn Report on the Algorithmic Language Scheme, abbreviatedRnRS.
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.
AbbreviatedR7RS, this standard brings back the simplicity of R5RS in the core language. Complexity has been moved into an optionallarge 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
AbbreviatedR6RS, 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 viasyntax-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.
AbbreviatedR5RS, this standard comes closest to a Platonic Form of Scheme before later standards tackle the complexities ofprogramming 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
AbbreviatedR4RS
Scheme starts really becoming Scheme with R4RS, e.g. hygienic macros were optional and in the appendix.
Official documents (PDF):R4RS
AbbreviatedR3RS, this was the first Scheme report laid on the now-familiar TeX template.
Official documents (PDF):R3RS
See also:Scheme research, especially thelambda papers from MIT.