Scheme (programming language): Difference between revisions

Content deleted Content added
interwiki de: fr:
MH~enwiki (talk | contribs)
m fixed minor grammar error
Line 1:
[[de:Scheme]] [[fr:Scheme]] [[ja:プログラミング言語Scheme]] [[nl:Programmeertaal Scheme]] [[pl:Scheme]]
 
The '''Scheme programming language''' is a [[functional programming language|functional]] [[programming language]] which isand a dialect of [[Lisp]]. It was developed by [[Guy L. Steele]] and [[Gerald Jay Sussman]] in the [[1970s]] and introduced to the academic world via a series of papers now referred to as Sussman and Steele's ''Lambda Papers''.
 
Scheme's philosophy is unashamedly [[minimalism|minimalist]]. Its goal is not to pile feature upon feature, but to remove weaknesses and restrictions that make new features appear necessary. Therefore, Scheme provides as few primitive notions as possible, and let everything else be implemented on top of them. For example, the main mechanism for governing control flow is [[tail recursion]].
 
Scheme was the first variety of Lisp to use [[lexical variable scoping]] (as opposed to [[dynamic variable scoping]]) exclusively. Like Lisp, Scheme supports [[computer memory garbage collection|garbage collection]] of unreferenced data. It uses lists as the primary data structure, but also has good support for arrays. Owing to the minimalism of the specification, there is no standard syntax for creating structures with named fields, or for doing [[object oriented|object oriented progamming]], but many individual implementations have such features.
 
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.
 
 
== Advantages of Scheme ==