Scheme is a dialect of LISP designed to be small and clean. It was created in 1975 by Gerald Jay Sussman and Guy Lewis Steele Jr. at the MIT Artificial Intelligence Laboratory. Their original report, MIT AI Memo No. 349, “SCHEME: An Interpreter for Extended Lambda Calculus,” describes an interpreter for a LISP-like language built on the lambda calculus.
Scheme’s defining characteristics set it apart from the older LISPs of its day. It uses lexical scoping, so a function captures the variables in the text surrounding it; it treats functions as first-class values that can be passed around and returned like any other data; and it requires proper handling of tail calls, so that recursive procedures can express loops without exhausting the stack.
The language has been refined over decades through a series of community standards called the “Revised Reports on the Algorithmic Language Scheme,” abbreviated RnRS. The standards site lists landmark editions including R5RS in 1998, often praised as a model of a compact language specification, and the later R7RS in 2013, which returned to that small-core spirit.
Because it is tiny yet expressive, Scheme became a favorite for teaching and for research. It is the language of the textbook SICP and underlies descendants such as Racket. Its minimalism makes it an ideal setting for exploring interpreters, macros, and the fundamentals of how programming languages work.