Scheme (programming language)

This is an old revision of this page, as edited by 195.149.37.xxx (talk) at 10:52, 6 October 2001 (addition of implementations and links hooks). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 featurelexical 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 [[Scheme Implementations|implementations] and

web resources related to Scheme.