This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
 Documentation / Mathematica / Built-in Functions / Programming / Scoping  /

  • Block[ x , y , ... , expr ] specifies that expr is to be evaluated with local values for the symbols x, y, ... .
  • Block[ x = , ... , expr ] defines initial local values for x, ... .
  • Block allows you to set up an environment in which the values of variables can temporarily be changed.
  • When you execute a block, values assigned to x, y, ... are cleared. When the execution of the block is finished, the original values of these symbols are restored.
  • Block affects only the values of symbols, not their names.
  • Initial values specified for x, y, ... are evaluated before x, y, ... are cleared.
  • You can use Block[ vars , body /; cond ] as the right-hand side of a transformation rule with a condition attached.
  • Block has attribute HoldAll.
  • Block implements dynamic scoping of variables.
  • Block is automatically used to localize values of iterators in iteration constructs such as Do, Sum and Table.
  • See the Mathematica book: Section 2.6.6.
  • See also: Module, With, CompoundExpression.

    Further Examples

    Here is an expression involving x.



    This evaluates the previous expression, using a local value for x.



    There is no global value for x.