Module

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, .

Details

  • 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 carry the attribute Temporary.
  • Symbols created by Module can be returned from modules.
  • You can use Module[{vars},body/;cond] as the righthand side of a transformation rule with a condition attached.
  • Module has attribute HoldAll.
  • Module constructs can be nested in any way, with inner variables being renamed if necessary.
  • Module is a scoping construct that implements lexical scoping.

Examples

open allclose all

Basic Examples  (1)

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

Applications  (2)

Properties & Relations  (8)

Possible Issues  (3)

See Also

With  Block  DynamicModule  Unique  GeneratedParameters

Tutorials

Introduced in 1991
(2.0)