Content deleted Content added
Add schemers.org in external links as a pertinent reference source |
m Omitted references to minimalism in introductory section. Added specific references to the two current standards. Called R5RS a widely implemented standard instead of the most widely implemented. Calling it the most widely implemented would require a more specific and more current reference. The fact that R5RS is widely implemented is well known in the community, as are the terms "small" and "large", I added the reference to R6RS to give it equal standing with R7RS, since both are standards. |
||
Line 23:
}}
'''Scheme''' is a [[programming language dialect|dialect]] of the [[Lisp (programming language)|Lisp]] family of [[programming language]]s. Scheme was created during the 1970s at the [[MIT Computer Science and Artificial Intelligence Laboratory|MIT AI Lab]] and released by its developers, [[Guy L. Steele]] and [[Gerald Jay Sussman]], via a series of memos now known as the [[Lambda Papers]]. It was the first dialect of Lisp to choose [[Scope (computer science)#Lexical scoping and dynamic scoping|lexical scope]] and the first to require implementations to perform [[tail-call optimization]], giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support [[First-class object|first-class]] [[continuation]]s. It had a significant influence on the effort that led to the development of [[Common Lisp]].<ref name="cl_steele">Common LISP: The Language, 2nd Ed., Guy L. Steele Jr. Digital Press; 1981. {{ISBN|978-1-55558-041-4}}. "Common Lisp is a new dialect of Lisp, a successor to MacLisp, influenced strongly by ZetaLisp and to some extent by Scheme and InterLisp."</ref>▼
▲Scheme was created during the 1970s at the [[MIT Computer Science and Artificial Intelligence Laboratory|MIT AI Lab]] and released by its developers, [[Guy L. Steele]] and [[Gerald Jay Sussman]], via a series of memos now known as the [[Lambda Papers]]. It was the first dialect of Lisp to choose [[Scope (computer science)#Lexical scoping and dynamic scoping|lexical scope]] and the first to require implementations to perform [[tail-call optimization]], giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support [[First-class object|first-class]] [[continuation]]s. It had a significant influence on the effort that led to the development of [[Common Lisp]].<ref name="cl_steele">Common LISP: The Language, 2nd Ed., Guy L. Steele Jr. Digital Press; 1981. {{ISBN|978-1-55558-041-4}}. "Common Lisp is a new dialect of Lisp, a successor to MacLisp, influenced strongly by ZetaLisp and to some extent by Scheme and InterLisp."</ref>
The Scheme language is standardized in the official [[Institute of Electrical and Electronics Engineers|IEEE]] standard<ref name="ieee1178">1178-1990 (Reaff 2008) IEEE Standard for the Scheme Programming Language. IEEE part number STDPD14209, [http://standards.ieee.org/board/rev/308minutes.html unanimously reaffirmed] at a meeting of the IEEE-SA Standards Board Standards Review Committee (RevCom), March 26, 2008 (item 6.3 on minutes), reaffirmation minutes accessed October 2009. NOTE: this document is only available for purchase from IEEE and is not available online at the time of writing (2009).</ref> <!--
-->and a ''de facto'' standard called the ''Revised{{padlsup|n}} Report on the Algorithmic Language Scheme'' (R''n''RS).
-->The most recently ratified standards of Scheme<!--
-->
-->
== History ==
Line 42 ⟶ 40:
A new language standardization process began at the 2003 Scheme workshop, with the goal of producing an R6RS standard in 2006. This process broke with the earlier R''n''RS approach of unanimity.
R6RS
Currently the newest releases of various Scheme implementations<ref name="rs6s_Implementations">{{cite web |url=http://www.r6rs.org/implementations.html |title=R6RS Implementations |publisher=r6rs.org |access-date=2017-11-24}}</ref> support the R6RS standard. There is a portable reference implementation of the proposed implicitly phased libraries for R6RS, called psyntax, which loads and bootstraps itself properly on various older Scheme implementations.<ref name="psyntax">{{cite web |author=Abdulaziz Ghuloum |publisher=Ikarus Scheme |url=https://www.cs.indiana.edu/~aghuloum/r6rs-libraries/ |title=R6RS Libraries and syntax-case system (psyntax) |date=2007-10-27 |access-date=2009-10-20}}</ref>
Line 51 ⟶ 49:
===R7RS===
The R6RS standard has caused controversy because
The ninth draft of R7RS (small language) was made available on April 15, 2013.<ref name="r7rs-draft-9">{{cite web |url=http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs-draft-9.pdf |title=R7RS 9th draft available |date=2013-04-15}}</ref> A vote ratifying this draft closed on May 20, 2013,<ref name="r7rs_clinger">{{cite web |author=Will Clinger |publisher=Scheme Language Steering Committee, scheme-reports mailing list |url=http://lists.scheme-reports.org/pipermail/scheme-reports/2013-May/003401.html |title=extension of voting period |date=2013-05-10 |access-date=2013-07-07 |archive-url=https://web.archive.org/web/20130721162308/http://lists.scheme-reports.org/pipermail/scheme-reports/2013-May/003401.html# |archive-date=2013-07-21 |url-status=dead }}</ref> and the final report has been available since August 6, 2013,<!-- quote= the Scheme Steering Committee decided in August 2009 to divide the standard into two separate but compatible languages – a "small" language, suitable for educators, researchers, and users of embedded languages, focused on R5RS compatibility, and a "large" language focused on the practical needs of mainstream software development, intended to become a replacement for R6RS. The present report --> describing "the 'small' language of that effort: therefore it cannot be considered in isolation as the successor to R6RS".<ref name="r7rs">{{cite web |url=http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf |title=R7RS final available |date=2013-07-06}}</ref>
|