The Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme a.k.a. the Revised5 Report a.k.a. R5RS.

This is the current de facto standard for the programming langauge Scheme. The series of Revised Reports is published as normal journal articles, rather than as formal ISO standards, and is very clear and readable.

The goal of the Revised Reports process was to standarise the intersection of features of different Scheme implementations (as opposed to Common Lisp, which wanted to form the union). Or maybe that is a after-the-fact excuse adopted after it became clear that the unanimous voting procedure prevented features from being added. In any case, R5RS is very short - only 50 pages - and is silent about many areas, such as:

While many Scheme implementations include such features, they are all incompatible. The SRFI project is a repsonse to that problem.

R5RS was published in 1998, and replaced the older R4RS. Important additions are:

  • Common Lisp style multiple return values.
  • The appendix in R4RS is now part of the standard, so Scheme finally has macros, in the form of syntax-rules. These are quite different from the Common Lisp variety, though, and intended to be complemented by an implementation-specific "low-level" macro system.
  • Various cleanups, so that R5RS forms a superset of an earlier IEEE Scheme standard.
  • A formal definition of tail recursion
  • .

The formal citation for R5RS is:

Revised5 Report on the Algorithmic Language Scheme, R. Kelsey, W. Clinger, J. Rees (eds.), Higher-Order and Symbolic Computation, Vol. 11, No. 1, September, 1998

A HTML version is available for example at http://www.schemers.org/Documents/Standards/R5RS/