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 Section 2.7.6.
See also: Module, With, CompoundExpression.
New in Version 1.