Example 1:
> verbosity=1!;
> sin(a);
sin(a)
> b;
Warning: the identifier "b" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "b" as "a".
a
> _x_;
a
Example 2:
> verbosity=1!;
> sin(y);
sin(y)
> f = proc(a) {
return sin(a + _x_);
};
> rename(y,z);
Information: the free variable has been renamed from "y" to "z".
> f(1);
sin(1 + z)
Example 3:
> f = sin(y);
> match f with
sin(a) : { print("sin of a with a =", a);
match a with
_x_ : { print("a turns out to be the free variable"); }
default : { print("a is some expression"); };
}
_x_ : { print("Free variable") ; }
default: { print("Something else"); };
sin of a with a = y
a turns out to be the free variable