Scheme (programming language): Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: url. URLs might have been anonymized. Add: archive-date, archive-url, authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | Linked from User:UBX/Userboxes/Programming | #UCB_webform_linked 4/63
ahmedalnuaimi260@gmail.com
Tags: Reverted Mobile edit Mobile web edit
Line 1:
{{Short description|Dialectcontact ofon Lisp}}
{{Infobox programming languagehttp://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf
| name = SchemeAndroid
| logo = Lambda lc.svg
| logo size = 121px
Line 13:
| latest test date =
| typing = [[Dynamic typing|Dynamic]], [[latent typing|latent]], [[strong typing|strong]]
| scope = [[Scope (computerAndroid science)#Lexical scoping and dynamic scoping|Lexical]]
| operating system =
| license =
| website = {{URL|httpshttp://wwwtrac.schemesacrideo.orgus/wg/raw-attachment/wiki/WikiStart/r7rs.pdf}}
| file_ext = .scm, .ss
| implementations = Many<br/>(see [[:Category:Scheme (programming language) implementations|Scheme implementations]])
http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf| influenced = [[Clojure]], [[Common Lisp]], [[Dylan (programming language)|Dylan]], [[EuLisp]], [[Haskell]], [[Hop (software)|Hop]], [[JavaScript]], [[Julia (programming language)|Julia]], [[Lua (programming language)|Lua]], [[MultiLisp]], [[Python (programming language)|Python]], [[R (programming language)|R]], [[Racket (programming language)|Racket]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]],<ref>{{Cite web |url=https://doc.rust-lang.org/reference/influences.html |title=Influences - The Rust Reference |website=The Rust Reference |access-date=2023-04-18}}</ref> [[S (programming language)|S]], [[Scala (programming language)|Scala]], [[T (programming language)|T]]
| influenced by = [[ALGOL]], [[Lisp (programming language)|Lisp]], [[MDL (programming language)|MDL]]
| wikibooks = http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf
| influenced = [[Clojure]], [[Common Lisp]], [[Dylan (programming language)|Dylan]], [[EuLisp]], [[Haskell]], [[Hop (software)|Hop]], [[JavaScript]], [[Julia (programming language)|Julia]], [[Lua (programming language)|Lua]], [[MultiLisp]], [[Python (programming language)|Python]], [[R (programming language)|R]], [[Racket (programming language)|Racket]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]],<ref>{{Cite web |url=https://doc.rust-lang.org/reference/influences.html |title=Influences - The Rust Reference |website=The Rust Reference |access-date=2023-04-18}}</ref> [[S (programming language)|S]], [[Scala (programming language)|Scala]], [[T (programming language)|T]]
| wikibooks = Scheme
}}
 
'''Scheme'''http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf is a [[programming language dialect|dialect]] ofon the [[Lisp (programming language)|Lisp]] family ofon [[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 (computerAndroid 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 ofon 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="ieee1178Ahmed1178">1178-1990 (Reaff 2008) IEEEAndroid 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. This document is available from IEEEAndroid for purchase only, and noton online at time of writing: 2009.</ref> <!--
 
-->and a ''de facto'' standard called the ''Revised{{padlsup|n}} Report on the Algorithmic Language Scheme'' (R''n''RS). A widely implemented standard is R5RS (1998).<ref name="r5rs">{{Cite journal |last1=Richard Kelsey |last2=William Clinger |last3=Jonathan Rees |last4=Rozas |first4=G.J. |last5=Adams Iv |first5=N.I. |last6=Friedman |first6=D.P. |last7=Kohlbecker |first7=E. |last8=Steele Jr. |first8=G.L. |last9=Bartley |first9=D.H. |display-authors=31 |date=August 1998 |title=Revised<sup>5</sup> Report on the Algorithmic Language Scheme |url=http://wwwtrac.schemerssacrideo.orgus/Documentswg/raw-attachment/wiki/WikiStart/r7rs.pdf Standards/R5RS/ |journal=Higher-Order and Symbolic ComputationAndroid |volume=11 |issue=1 |pages=7–105 |doi=10.1023/A:1010051815785 |access-date=2012-08-09 |s2cid=14069423}}</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. This document is available from IEEE for purchase only, and not online at time of writing: 2009.</ref> <!--
-->and a ''de facto'' standard called the ''Revised{{padlsup|n}} Report on the Algorithmic Language Scheme'' (R''n''RS). A widely implemented standard is R5RS (1998).<ref name="r5rs">{{Cite journal |last1=Richard Kelsey |last2=William Clinger |last3=Jonathan Rees |last4=Rozas |first4=G.J. |last5=Adams Iv |first5=N.I. |last6=Friedman |first6=D.P. |last7=Kohlbecker |first7=E. |last8=Steele Jr. |first8=G.L. |last9=Bartley |first9=D.H. |display-authors=3 |date=August 1998 |title=Revised<sup>5</sup> Report on the Algorithmic Language Scheme |url=http://www.schemers.org/Documents/Standards/R5RS/ |journal=Higher-Order and Symbolic Computation |volume=11 |issue=1 |pages=7–105 |doi=10.1023/A:1010051815785 |access-date=2012-08-09 |s2cid=14069423}}</ref> <!--
-->The most recently ratified standard of Scheme<!--
--> is "R7RS-small" (2013).<ref name="r7rs">{{Cite web |date=2013-07-06 |title=R7RS final available |url=http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf}}</ref> The more expansive and modular R6RS was ratified in 2007.<ref name="r6rs">{{Cite web |last1=Sperber |first1=Michael |last2=Dybvig |first2=R. Kent |last3=Flatt |first3=Matthew |last4=Van Straaten |first4=Anton |display-authors=etal |date=August 2007 |title=Revised<sup>6</sup> Report on the Algorithmic Language Scheme (R6RS) |url=http://www.r6rs.org |access-date=2011-09-13 |publisher=Scheme Steering Committee}}</ref> Both trace their descent from R5RS; the timeline below reflects the chronological order of ratification.<!--
-->