> (%i2) declare(y, noun);
> (%i3) O(2*y);
...
> At (%o4) why the `y' comes out? I want to stay inside therefore it is a
> noun not a scalar!
Declaring an identifier to be a noun changes only its behavior as a
function, not as a variable, and has nothing to do with
scalar/non-scalar.
NOUN - makes the function ai a noun so that it won't be evaluated
automatically.
For example:
f(x):=x^3-1$
f(2) => 7
declare(f,noun)$
f(2) => f(2)
ev(f(2), f) => 7
ev(f(2),nouns) => 7