This document describes rationales for some of the design decisions behind the Revised6 Report on the Algorithmic Language Scheme. The focus is on changes made since the last revision on the report. Moreover, numerous fundamental design decisions of Scheme are also explained. This report also contains some historical notes. The formal comments submitted for drafts of the report and their responses, as archived on http://www.r6rs.org/ provides more valuable background information on many decisions that are reflected in the report.
Note that this document rationale is not intended to be an exhaustive justification for every decision and design aspect of the report. Instead, it provides information about some of the arguments considered by the editors’ committee when decisions were made, as background information and as guidelines for future makers of decisions. As such, the arguments given here may not be convincing to every reader, but they convinced the editors at the time the respective decisions were made.
This document frequently refers back to the Revised6 Report on the Algorithmic Language Scheme [31], the Revised6 Report on the Algorithmic Language Scheme — Libraries — [32], and the Revised6 Report on the Algorithmic Language Scheme — Non-Normative Appendices — [33]; specific references to the report are identified by designations such as “report section” or “report chapter”, references to the library report are identified by designations such as “library section” or “library chapter”, and references to the appendices are identified by designations such as “appendix” or “appendix section”. This document frequently refers to the whole Revised6 Report on the Algorithmic Language Scheme as “R6RS”, and to the Revised5 Report on the Algorithmic Language Scheme as “R5RS”.
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, which is not formally a part of the ratification process of the report.