Content deleted Content added
mNo edit summary |
m Automated conversion |
||
Line 1:
The '''Scheme programming language''' is a [[functional programming language|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 [[computer memory garbage collection|garbage collection]]▼
▲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 programming language|Planner]]
and [[Conniver programming language|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
[[Scheme Links|web resources]] related to Scheme.
mention the standards here: R4RS (and earlier!), R5RS, and the IEEE standard.
|