(standards.scheme.org) Scheme Standards (Early)
ROAM_REFS: https://standards.scheme.org/early/
- Scheme Standards
** Early standards
The first three reports on Scheme were published as research memos by the MIT Artificial Intelligence Laboratory (now CSAIL), the birthplace of both Lisp and Scheme.
These early reports are written in an informal tone with improvised typesetting. The language definition is not as rigorous or comprehensive as in the later reports. The language is still seeking its form. These versions of Scheme are incompatible with modern Scheme and with each other. No release of any Scheme implementation since about 1990 is based on them.
* Retroactive naming convention
Modern Scheme reports are named Revisedn Report on the Algorithmic Language Scheme, abbreviated RnRS. The first standard explicitly named thus was R3RS. The names of the earlier reports have been retroactively abbreviated using the same pattern: R2RS and R1RS. As a mathematical pun, the initial report is dubbed R0RS since it isn't revised at all.
** The three early reports
* Scheme: An Interpreter for Extended Lambda Calculus (1975)
Abbreviated R0RS
AI Memo No. 349
* Revised Report on Scheme (1978)
Abbreviated R1RS
AI Memo No. 452
* Revised Revised Report on Scheme (1985)
Abbreviated R2RS
AI Memo No. 848
People from Indiana University contributed to the design of the language.
The abstract of the paper was written as a poem:
Data and procedures and the values they amass,
Higher-order functions to combine and mix and match,
Objects with their local state, the messages they pass,
A property, a package, the control point for a catch ---
In the Lambda Order they are all first-class.
One Thing to name them all, One Thing to define them,
One Thing to place them in environments and bind them,
In the Lambda Order they are all first-class.
(standards.scheme.org) r4rs.dvi - r4rs.pdf mime_type_application_pdf
ROAM_REFS: https://standards.scheme.org/official/r4rs.pdf
- Revised4 Report on the Algorithmic Language Scheme
William Clinger and Jonathan Rees (Editors)
H. Abelson, R. K. Dybvig, C. T. Haynes, G. J. Rozas, N. I. Adams iv, D. P. Friedman, E. Kohlbecker, G. L. Steele Jr., D. H. Bartley, R. Halstead, D. Oxley, G. J. Sussman, G. Brooks, C. Hanson, K. M. Pitman, and M. Wand
Dedicated to the Memory of ALGOL 60
2 November 1991
** Summary
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.
The introduction offers a brief history of the language and of the report.
The first three chapters present the fundamental ideas of the language and describe the notational conventions used for describing the language and for writing programs in the language.
Chapters 4 and 5 describe the syntax and semantics of expressions, programs, and definitions.
Chapter 6 describes Scheme's built-in procedures, which include all of the language's data manipulation and input/output primitives.
Chapter 7 provides a formal syntax for Scheme written in extended BNF, along with a formal denotational semantics. An example of the use of the language follows the formal syntax and semantics.
The appendix describes a macro facility that may be used to extend the syntax of Scheme.
The report concludes with a bibliography and an alphabetic index.