Scheme (programming language): Difference between revisions

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.