Module[{x, y, ...}, expr] specifies that occurrences of the symbols x, y, ... in expr should be treated as local. |
Module[{x=x0, ...}, expr] defines initial values for x, .... |
- Module allows you to set up local variables with names that are local to the module.
- Module creates new symbols to represent each of its local variables every time it is called.
- Module creates a symbol with name xxx$nnn to represent a local variable with name xxx. The number nnn is the current value of $ModuleNumber.
- The value of $ModuleNumber is incremented every time any module is used.
- Before evaluating expr, Module substitutes new symbols for each of the local variables that appear anywhere in expr except as local variables in scoping constructs.
- Symbols created by Module can be returned from modules.
- You can use Module[{vars}, body/;cond] as the right-hand side of a transformation rule with a condition attached.
- Module constructs can be nested in any way, with inner variables being renamed if necessary.
- Module is a scoping construct that implements lexical scoping.
| Out[2]= |  |
| |
|
|
|
|
 |
|
|