Scheme (programming language): Difference between revisions

Content deleted Content added
ahmedalnuaimi260@gmail.com
Tags: Reverted Mobile edit Mobile web edit
m Reverted edits by 2001:8F8:1539:C6A:B443:2B9C:3BF4:DD3 (talk) (HG) (3.4.12)
Line 1:
{{Short description|contactDialect onof Lisp}}
{{Infobox programming http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdflanguage
| name = AndroidScheme
| logo = Lambda lc.svg
| logo size = 121px
Line 13:
| latest test date =
| typing = [[Dynamic typing|Dynamic]], [[latent typing|latent]], [[strong typing|strong]]
| scope = [[Scope (Androidcomputer science)#Lexical scoping and dynamic scoping|Lexical]]
| operating system =
| license =
| website = {{URL|httphttps://tracwww.sacrideoscheme.usorg/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 by = [[ALGOL]], [[Lisp (programming language)|Lisp]], [[MDL (programming language)|MDL]]
| 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
| wikibooks = http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf
}}
 
http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf'''Scheme''' is a [[programming language dialect|dialect]] onof the [[Lisp (programming language)|Lisp]] family onof [[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 (Androidcomputer 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 onof 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="Ahmed1178ieee1178">1178-1990 (Reaff 2008) AndroidIEEE 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 AndroidIEEE for purchase only, and onnot 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=13 |date=August 1998 |title=Revised<sup>5</sup> Report on the Algorithmic Language Scheme |url=http://tracwww.sacrideoschemers.usorg/wgDocuments/raw-attachment/wiki/WikiStart/r7rs.pdf Standards/R5RS/ |journal=Higher-Order and Symbolic AndroidComputation |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.<!--
-->