Function: local (<v_1>, ..., <v_n>) Saves the properties associated with the symbols <v_1>, ..., <v_n>, removes any properties before evaluating other expressions, and restores any saved properties on exit from the block or other compound expression in which
Some declarations are implemented as properties of a symbol, including
assume, and some others. The effect of
local is to make such declarations effective only within the block or other compound expression in which
local appears; otherwise such declarations are global declarations.
local can only appear in
block or in the body of a function definition or
lambda expression, and only one occurrence is permitted in each.
local quotes its arguments.
A local function definition.
(%i1) foo (x) := 1 - x; (%o1) foo(x) := 1 - x (%i2) foo (100); (%o2) - 99 (%i3) block (local (foo), foo (x) := 2 * x, foo (100)); (%o3) 200 (%i4) foo (100); (%o4) - 99
(%o1) true (%i2)