R7RS
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 R
RS small language was completed in 2013.
Small language report (
PDF
errata
Unofficial edition with errata corrected (
PDF
HTML
Wiki and issue tracker archive
Large language
Development of the R
RS large language is ongoing.
Official repository
including
issue tracker
and
wiki
‘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.’
— Revised
Reports on the Algorithmic Language Scheme (
≥ 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.
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, R
RS, by one of its editors.
Note: The R
RS small language is not compatible with all of R
RS. The R
RS large language in development is intended to be compatible with R
RS. In the meanwhile,
see below
for implementations of R
RS.
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 R
RS small.
Chibi Scheme
‘a very small library intended for use as an extension and scripting language in C programs’
Foment
‘built around a compiler and VM’
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’
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, R
RS.
Chez Scheme
Guile
IronScheme
Loko
Mosh
Racket
Sagittarius Scheme
Ypsilon
Previous Scheme reports and standards
RS (2007)
Official website
with report text, links to known implementations, etc.
RS (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
RS (1991)
Report text (PDF)
RS (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:
Report
Revised Report