Editor's introduction to this fascicle
The Revised7Report on the Algorithmic Language Scheme, Large Edition, is released in fascicles, which are incrementalreleases of the full standard.
This is the Procedural Fascicle(fascicle 2 of 8) containing the description of the basic syntax and procedures used for procedural programming in Scheme.It defines
the syntax of creating procedures (
lambda),the definition form for REPLs and for libraries(
define),forms for block-structured variable binding (
let),destructive assignment (
set!),conditional forms (
if,and,or),loops (named
let,do),and the equivalence of procedure objects.
Changes to the R7RS
The major features of this fascicle:
definewith no left-hand side, like in the R6RS.Higher order procedure definitions like in SRFI 219
define-aliasto make one identifier refer to another.letrec-valuesandletrec*-values.A
recform similar to the one defined in the RRRS to define anonymous recursive functions.The ability to mix definitions and expressions in bodies.
A
condthat handles multiple values as in SRFI 61.The clauses for
cond,case, along with the formswhenandunless, are now bodies that allow for definitions.It is now syntactically valid for
condandcaseto have no clauses.