An error is produced when using a procedure whose argument name in its definition matches the free variable name
The name given to an argument in the definition of a procedure cannot be the name of the free variable. This could be acceptable. However, the name of the free variable can change within a session, and the current behavior of Sollya is that a procedure that used to work perfectly in a given session stops working if the name of the free variable is changed to match one of the names used for the arguments of the procedure at its definition.
Example:
> succ = proc(x) {return x+1;};
> succ(23);
24
> f = sin(x);
> f(pi);
0
> succ(23);
Warning: the identifier "x" is already bound to the current free variable.
It cannot be used as a formal parameter of a procedure. The procedure cannot be executed.
Warning: an error occurred while executing a procedure.
Warning: the given expression or command could not be handled.
error