Next: , Previous: , Up: The Universe Known as LISP   [Contents][Index]


18 Scheme

Scheme is a member of the Lisp family of languages. Scheme was introduced in 1975 by Gerald J. Sussman and Guy L. Steele Jr.. Scheme is defined in a document called The Revised^5 Report on the Algorithmic Language Scheme, or R5RS for short. A newer report, R6RS, was released in 2007, but this report has attracted considerable controversy, and a number of Scheme implementations have chosen not to be compliant with it. Yet another report was released in 2013 ("R7RS"), that was less ambitious than R6RS and more minimal.

Even though Scheme is consciously minimalist, it is recognized that a language must be more than a minimal core in order to be useful. Accordingly, the Scheme community uses a process known as ‘Scheme Requests For Implementation’ (SRFI, pronounced ‘SUR-fee’) to define new language features. A typical Scheme system therefore complies with one of the Scheme reports plus some or all of the accepted SRFIs.

Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.

It was the first dialect of Lisp to fully support:

In its earliest form it was a very small language intended primarily for research and teaching. Scheme is now a complete general-purpose programming language, though it still derives its power from a small set of key concepts.

There are two standards for Scheme: an official standard with IEEE and a de facto one, often called "RnRS", short for the Revised^nth Report on the Algorithmic Language Scheme. In colloquial use, "Scheme standard" usually refers to the latter.


Next: Racket, Previous: Emacs Lisp, Up: The Universe Known as LISP   [Contents][Index]