Next: Evaluation Rules: Actual Up: Maple Procedures Previous: Arrow Operators

Scope Rules: Parameters, Locals, Globals

Maple supports nested procedures. For example, you can write


f1 := proc(x) local g; g := x -> x+1; x*g(x) end;

Procedure has a local variable which is a procedure. computes . However, nested parameters and local variables do not use nested scoping rules. E.g. the above procedure is not equivalent to this one


f2 := proc(x) local g; g := () -> x+1; x*g() end;

because the reference to in the procedure does not refer to the parameter in . It refers to the global variable . Consider these examples

=-1.00.5plus##1`##1=12=^^M=12 > f1(a);

a (a + 1)

> f2(a);

a (x + 1)

> x := 7;

x := 7

> f2(a);

8 a

plusplus -100 plus One similarly cannot refer to local variables in outer scopes.


Klaus Steinberger
Mi Apr 13 12:51:51 MDT 1994