Scheme programming language

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

The Scheme programming language is a functional programming language which is a dialect of Lisp. It was developed by Guy L. Steele and Gerald J. Sussman in the 1970s.

It was the first variety of Lisp to feature lexical variable scoping rather than dynamic variable scoping. Like Lisp, Scheme supports garbage collection of unreferenced data. It uses lists as primary data structure, and list operations such as cdr and car.

Scheme's philosophy is unashamedly minimalist: provide as few primitive notions as possible, and let everything else be implemented on top of them. For instance, the main mechanism for governing control flow is tail recursion.

Why the curious name? Well, it was originally called "Schemer", in the tradition of the languages Planner and Conniver, but its authors used the ITS operating system which didn't allow filenames longer than 6 characters.

There are many implementations and web resources related to Scheme.

mention the standards here: R4RS (and earlier!), R5RS, and the IEEE standard.