expressions-bindings -- r7rs Category Binding constructs
The binding constructs
let,let*,letrec,letrec*,let-values, andlet*-valuesgive Scheme a block structure, like Algol 60. The syntax of the first four constructs is identical, but they differ in the regions they establish for their variable bindings. In aletexpression, the initial values are computed before any of the variables become bound; in alet*expression, the bindings and evaluations are performed sequentially; while inletrecandletrec*expressions, all the bindings are in effect while their initial values are being computed, thus allowing mutually recursive definitions. Thelet-valuesandlet*-valuesconstructs are analogous toletandlet*respectively, but are designed to handle multiple-valued expressions, binding different identifiers to the returned values.
The text herein was sourced and adapted as described in the "R7RS attribution of various text snippets" appendix.