Scheme (programming language)
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.