► |  | How to Design Programs Languages

1 | Beginning Student
2 | Beginning Student with List Abbreviations
3 | Intermediate Student
4 | Intermediate Student with Lambda
5 | Advanced Student
| Index

▼ | 3 | Intermediate Student

3.1 | define
3.2 | define-struct
3.3 | local
3.4 | letrec, let, and let*
3.5 | Function Calls
3.6 | time
3.7 | Identifiers
3.8 | Primitive Operations
3.9 | Unchanged Forms

On this page:

letrec
let
let*

top← prev up next →

#### 3.4`` letrec, let, and let*

(letrec ([id expr-for-let] ...) expr)

Similar to local, but essentially omitting the define for each definition.

A expr-for-let can be either an expression for a constant definition or a lambda form for a function definition.

(let ([id expr-for-let] ...) expr)

Like letrec, but the defined ids can be used only in the last expr, not the expr-for-lets next to the ids.

(let* ([id expr-for-let] ...) expr)

Like let, but each id can be used in any subsequent expr-for-let, in addition to expr.
top← prev up next →