Content deleted Content added
Modifed Guile entry. |
added advantages and disadvantages section |
||
Line 7:
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.
Scheme has very little syntax compared to many other programming languages. It has no operator precedence rules because they are explicit in the notation.
Thanks to its macro facilities, Scheme can be adopted to any problem ___domain. Extending Scheme to naturally support [[object-oriented programming]] can only be done with macros.
Scheme encourages [[functional programming]]. Pure functional programs need no global variables and don't have side-effects, and are therefore automatically thread-safe, automatically verifyable and have more of these nice properties. However, Scheme can also do [[variable assignment]] for those who want it.
In Scheme, functions are first class citizens. This means they can be passed as arguments to another function or stored in a variable and manipulated. This allows higher order functions that can further abstract program logic.
== Disadvantages of Scheme ==
Unlike scripting languages as [[Perl programming language|Perl]] or [[Python programming language|Python]], Scheme is not standardized beyond its core. Functions that exist in one Scheme implementation do not need to exist in another or may have a completely different name and/or interface. The ''Scheme Requests for Implementation'' (SRFI) process tries to remedy this.
== Standards ==
There are two standards that define the Scheme language: the official IEEE standard, and a de facto standard called the ''Revised<sup>n<sup>th</sup></sup> Report on the Algorithmic Language Scheme'', nearly always abbreviated R<sup>n</sup>RS, where <I>n</I> is the number of the revision. The latest R<sup>n</sup>RS version is R<sup>5</sup>RS, available online at http://www.schemers.org/Documents/Standards/R5RS/ .
Scheme code can be found in at least the following Wikipedia articles:
* [[Arithmetic geometric mean]]
* [[Tail recursion]]
* [http://www.scheme.com/
* [http://www.gnu.org/software/guile/
* [http://www.plt-scheme.org/
* [http://www.schemers.org/
* [http://srfi.schemers.org/ Scheme Requests for Implementation (SRFI)]
* [http://www.htdp.org/ * [http://www.scheme.com/tspl2ed.html
* [http://library.readscheme.org/
|