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
functional, imperative, and message passing styles, find convenient
expression in Scheme.

This report is accompanied by a report describing standard
libraries [22]; 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 [23]. A third report gives
some historical background and rationales for many aspects of the
language and its libraries [24].

The individuals listed above are not the sole authors of the text of
the report. Over the years, the following individuals were involved
in discussions contributing to the design of the Scheme language, and
were listed as authors of prior reports:

In order to highlight recent contributions, they are not listed as
authors of this version of the report. However, their contribution
and service is gratefully acknowledged.

We intend this report to belong to the entire Scheme community, and so
we grant permission to copy it in whole or in part without fee. In
particular, we encourage implementors of Scheme to use this report as
a starting point for manuals and other documentation, modifying it as
necessary.

*** 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.