It is possible in Maple to change the values of the arguments passed to a procedure.
For example, look at the following procedure:
f := proc(x)
x := 7;
Now you can say
which would print "y" and set the value of y to 7. But then subsequently executing
would give an "illegal use of a formal parameter", since y evaluates to 7 (so the assignment would result in an "invalid left hand side of assignment").
1. Is this behavior stated somewhere in the manual and/or help-pages? I cannot seem to find it...
2. Can this be avoided, i.e. is there a way that prohibits the arguments from being reassigned?