next up previous contents index
Next: The Apply-to-Each Construct ({}) Up: Functions and Constructs Previous: Conditionals (if)

Binding Local Variables (let)


Local variables can be bound with the let construct. The syntax is:


The semicolon separates bindings (the square brackets indicate an optional term of the syntax). Each pattern is either a variable name or a pattern based on a record name. Each expbind binds the variables in the pattern on the left of the = to the result of the expression on the right. For example:

Here a is bound to 7, then the pattern (b, c) is matched with the result of the expression on the right so that b is bound to 1 and c is bound to 2. Patterns can be nested, and the patterns are matched recursively.

The variables in each expbind can be used in the expressions (exp) of any later expbind (the bindings are done serially). For example, in the expression

the variable a is bound to the value 7 and then the variable b is bound to the value of a plus 4, which is 11. When these are multiplied in the body, the result is 77.

Jonathan Hardwick
Tue Nov 28 13:57:00 EST 1995