Jump to content

Scheme: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
A version of [[LISP]] introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later [[Common Lisp]] but its popularity has waned considerably. There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the ''Revised(5) Report on the Algorithmic Language Scheme'' or the older but largely identical ''Revised(4)'' (See Standards at the bottom of page for links), but a new ''Revised(6)'' standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.
'''Scheme''' is a [[LISP]] dialect introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later [[Common Lisp]].


There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the ''Revised(5) Report on the Algorithmic Language Scheme'' or the older but largely identical ''Revised(4)'', but a new ''Revised(6)'' standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.
==Standards==
The newest ''Revised(7)'' standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.
The newest ''Revised(7)'' standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.


==Standards==
* Gerald Jay Sussman and Guy Lewis Steele Jr.: ''Scheme: an interpreter for extended lambda calculus. Technical Report'' -  MIT Artificial Intelligence Memo 349 December 1975.
* Gerald Jay Sussman and Guy Lewis Steele Jr.: ''Scheme: an interpreter for extended lambda calculus. Technical Report'' -  MIT Artificial Intelligence Memo 349 December 1975.
* Guy Lewis Steele Jr. and Gerald Jay Sussman: ''The revised report on Scheme, a dialect of Lisp. Technical Report'' - MIT Artificial Intelligence Memo 452 January 1978.
* Guy Lewis Steele Jr. and Gerald Jay Sussman: ''The revised report on Scheme, a dialect of Lisp. Technical Report'' - MIT Artificial Intelligence Memo 452 January 1978.
Line 11: Line 13:
* William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r4rs_toc.html Revised(4) Report on the Algorithmic Language Scheme] - ACM Lisp Pointers IV (July-September 1991).
* William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r4rs_toc.html Revised(4) Report on the Algorithmic Language Scheme] - ACM Lisp Pointers IV (July-September 1991).
* Richard Kelsey, William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r5rs_toc.html Revised(5) Report on the Algorithmic Language Scheme] - Higher-Order and Symbolic Computation Volume 11, Issue 1, August 1998
* Richard Kelsey, William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r5rs_toc.html Revised(5) Report on the Algorithmic Language Scheme] - Higher-Order and Symbolic Computation Volume 11, Issue 1, August 1998
* Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten(Editors): [http://www.r6rs.org/final/r6rs.pdf Revised(6) Report on the Algorithmic Language Scheme] - 2007
* Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten (Editors): [http://www.r6rs.org/final/r6rs.pdf Revised(6) Report on the Algorithmic Language Scheme] - 2007
:Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.
:Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.
* [http://trac.sacrideo.us/wg/wiki/R7RSHomePage Revised(6) Report on the Algorithmic Language Scheme] - R7RS-small 2013 - R7RS-large unfinished.
* [http://trac.sacrideo.us/wg/wiki/R7RSHomePage Revised(6) Report on the Algorithmic Language Scheme] - R7RS-small 2013 - R7RS-large unfinished.


==OS/2 Implementations==
==OS/2 Implementations==
*[[MIT/GNU Scheme]] - Open Source - Discontinued
*[[MIT/GNU Scheme]] - Open Source
*SCM Scheme 4e1 - GNU GPL v1
*SCM Scheme 4e1 - GNU GPL v1
*XScheme
*XScheme


===Libraries===
===Libraries===
* [[SLIB Portable Scheme Library]] - Portable version of Scheme in a library form - Open Source - Current
* [[SLIB Portable Scheme Library]] - Portable version of Scheme in a library form


===Snippets===
===Snippets===
Line 27: Line 29:


==DOS Implementations==
==DOS Implementations==
*Texas Instruments PC SCHEME - Commercial - Discontinued
*EdScheme
*Gambit-C
*SCM
*Texas Instruments/Ibuki [[PC Scheme]]


==Publications==
==Publications==
* Nils M. Holm: ''[https://archive.org/details/sketchy-lisp Sketchy LISP]'' - 2009 - Public domain Scheme tutorial
* Nils M. Holm: ''[https://archive.org/details/sketchy-lisp Sketchy LISP]'' - 2009 - Public domain Scheme tutorial


*Abelson, Sussman: ''Structure and Interpretation of Computer Programs'' - McGraw-Hill, ISBN 0-07-000422-6
*Abelson, Sussman: ''Structure and Interpretation of Computer Programs'' - McGraw-Hill 1985, ISBN 0-07-000422-6
*R. Kent Dybvig: ''The Scheme Programming Language'' - MIT Press, ISBN 0-262-54148-3
*R. Kent Dybvig: ''The Scheme Programming Language'' - MIT Press, ISBN 0-262-54148-3
*Springer, Friedman: ''Scheme and the Art of Programming'' - MIT Press, ISBN 0-262-19288-8
*Springer, Friedman: ''Scheme and the Art of Programming'' - MIT Press 1989, ISBN 0-262-19288-8
*Brian Harvey; Matthew Wright: ''Simply Scheme'' - MIT 1994, ISBN 0-262-08226-8


==Links==
==Links==
*http://www.scheme-reports.org
*http://www.schemers.org
*http://www.schemers.org
* [https://github.com/TaylanUB/scheme-srfis List of R7RS implementations] - None of OS/2 so for but a starting point for anyone that wants to start a port.
;Tutorials
* [http://www.phyast.pitt.edu/~micheles/scheme The Adventures of a Pythonista in Schemeland]
* Christian Stigen Larsen: ''[https://csl.name/post/scheme-tutorial/ A Short R⁷RS Scheme Tutorial]''


[[Category:LISP]]
[[Category:LISP]]

Latest revision as of 08:44, 25 February 2023

Scheme is a LISP dialect introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later Common Lisp.

There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the Revised(5) Report on the Algorithmic Language Scheme or the older but largely identical Revised(4), but a new Revised(6) standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.

Standards

The newest Revised(7) standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.

The only formal standard for Scheme, largely ignored.
Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.

OS/2 Implementations

Libraries

Snippets

DOS Implementations

  • EdScheme
  • Gambit-C
  • SCM
  • Texas Instruments/Ibuki PC Scheme

Publications

  • Nils M. Holm: Sketchy LISP - 2009 - Public domain Scheme tutorial
  • Abelson, Sussman: Structure and Interpretation of Computer Programs - McGraw-Hill 1985, ISBN 0-07-000422-6
  • R. Kent Dybvig: The Scheme Programming Language - MIT Press, ISBN 0-262-54148-3
  • Springer, Friedman: Scheme and the Art of Programming - MIT Press 1989, ISBN 0-262-19288-8
  • Brian Harvey; Matthew Wright: Simply Scheme - MIT 1994, ISBN 0-262-08226-8

Links

Tutorials