Scheme Standards

Early standards

The first three reports on Scheme were published as research memos by the MIT Artificial Intelligence Laboratory (now CSAIL), the birthplace of both Lisp and Scheme.

These early reports are written in an informal tone with improvised typesetting. The language definition is not as rigorous or comprehensive as in the later reports. The language is still seeking its form. These versions of Scheme are incompatible with modern Scheme and with each other. No release of any Scheme implementation since about 1990 is based on them.

Retroactive naming convention

Modern Scheme reports are named Revisedn Report on the Algorithmic Language Scheme, abbreviated RnRS. The first standard explicitly named thus was R3RS. The names of the earlier reports have been retroactively abbreviated using the same pattern: R2RS and R1RS. As a mathematical pun, the initial report is dubbed R0RS since it isn't revised at all.

The three early reports

Scheme: An Interpreter for Extended Lambda Calculus (1975)

Abbreviated R0RS

AI Memo No. 349


Revised Report on Scheme (1978)

Abbreviated R1RS

AI Memo No. 452


Revised Revised Report on Scheme (1985)

Abbreviated R2RS

AI Memo No. 848

People from Indiana University contributed to the design of the language.


The abstract of the paper was written as a poem:

Data and procedures and the values they amass,
Higher-order functions to combine and mix and match,
Objects with their local state, the messages they pass,
A property, a package, the control point for a catch —
In the Lambda Order they are all first-class.
One Thing to name them all, One Thing to define them,
One Thing to place them in environments and bind them,
In the Lambda Order they are all first-class.