Revised7 Report on the Algorithmic Language Scheme

Revised Revised Revised Revised Revised Revised Revised

Scheme is a programming language designed with an emphasis on building abstractions out of simple, composable primitives.

This website covers the ongoing seventh revision of the specification since 1975, divided into two parts: a small language primarily for embedding, education, and research; and a large language to address the practical needs of mainstream software development.

Small language

The R7RS small language was completed in 2013.

Large language

Development of the R7RS large language is ongoing.

‘Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.’

— Revisedn Reports on the Algorithmic Language Scheme (n ≥ 3, 1986–)

Learn Scheme

Structure and Interpretation of Computer Programs (Second Edition, 1996)

The classic introductory computer science text which drove the development of Scheme. Progress from the fundamentals of computational processes, through abstraction of data and processes, to eventually writing your own virtual machine in Scheme.

Also available as a paperback from the MIT Press. A video lecture series is also available.

The Scheme Programming Language (Fourth Edition, 2009)

A reference-style introduction to the Scheme language of the previous report, R6RS, by one of its editors. Note: The R7RS small language is not compatible with all of R6RS. The R7RS large language in development is intended to be compatible with R6RS. In the meanwhile, see below for implementations of R6RS.

Also available as a paperback from the MIT Press.

How to Design Programs (Second Edition, 2014)

A new introduction to writing computer programs, focussed on learning how to apply and refine common design techniques.

Also available as a paperback from the MIT Press.

Implementations

Scheme is a language of many implementations. We actively encourage new implementations.

The following implementations of Scheme support R7RS small.

Chibi Scheme
‘a very small library intended for use as an extension and scripting language in C programs’
Gambit Scheme
‘one of the fastest dynamic language implementations’, ‘targets C, JavaScript, Python, and more’
Gauche
‘developed to be a handy script interpreter’
Gerbil Scheme
‘a meta-dialect of Scheme with post-modern features’
Guile
‘designed to help programmers create flexible applications that can be extended by users or other programmers with plug-ins, modules, or scripts’
Hoot
‘a full-featured WebAssembly (WASM) toolkit in Scheme’
MIT/GNU Scheme
‘suited to programming large applications with a rapid development cycle’
Mosh
‘a free and fast interpreter’
Picrin
‘lightweight’, ‘written in pure C89’
Sagittarius Scheme
‘implementation with a lot of practical libraries, especially cryptographic libraries’
STklos
‘fast as well as light’
Ypsilon
‘best performance in parallel execution’

The following implementations support the previous version of the report, R6RS.

Quotes, and claims of compatibility with R7RS or R6RS, are taken from implementations’ own marketing copy. We cannot extensively verify conformance levels of these implementations.

Want to be on one of these lists? Your implementation must be clearly currently maintained and have a reasonable claim to completeness and conformance. File an issue requesting your implementation be included on these lists.

Previous Scheme reports and standards

R6RS (2007)

Official website with report text, links to known implementations, etc.

R5RS (1998)

Report text in various formats at the Scheme Conservatory

IEEE 1178:1990 (Scheme) & ISO 10179:1996 (DSSSL)

The IEEE Scheme specification can still be purchased from the IEEE.

The Document Style Semantics and Specification Language (DSSSL) is an extended subset of IEEE Scheme specialized for transforming and laying out marked-up documents. Its specification can be purchased from the ISO.

R4RS (1991)

Report text (PDF)

R3RS (1986)

Report text (PDF)

RRRS (1985)

The first Scheme report which could be described as a language standard rather than a research report. The RRRS can be downloaded from MIT.

Report on Scheme (1975) & Revised Report on Scheme (1978)

The original research reports describing Scheme can be downloaded from MIT: