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. It also contains a short tutorial to the basic concepts of the language.
Chapter 1 gives an nonnormative overview of the language.
Chapter 2 explains Scheme’s representation for numbers.
Chapter 3 defines the lexical syntax of Scheme and the syntax of Scheme forms.
Chapter 4 presents the fundamental semantic ideas of the language.
Chapter 5 defines notational conventions used in the rest of the report.
Chapter 8 explains the macro-expansion process for Scheme code.
Chapter 9 explains the Scheme base library which contains the fundamental forms useful to programmers.
Appendix A provides a nonnormative formal semantics for a core of Scheme.
Appendix B contains definitions for some of the derived forms described in the report.
Appendix C describes some sources for additional material about Scheme.
Appendix D contains an example of a small complete Scheme program.
Appendix E describes changes to the language made since the previous revision of this report.
The report concludes with a list of references and an alphabetic index.
This report is accompanied by a report describing standard libraries ; references to this document are identified by designations such as “library section” or “library chapter”. It is also accompanied by a report containing non-normative appendices .
*** DRAFT*** |
This is a preliminary draft. It is intended to reflect the decisions taken by the editors’ committee, but likely contains many mistakes, ambiguities, and inconsistencies.