Richard Fateman writes:
>
> The words "variable" and "function" are unfortunately used in different
> ways in the documentation that might be confusing to readers.
>
> A variable can be an "indeterminate" as x in diff(sin(x),x)
> or it can be a programming language name as in x: 45
> or it can be part of a mechanism to control the semantics of maxima,
> e.g. fpprec: 100, numer: true, etc.
> or it can even be a message as return('Arg_Too_Big);
>
>
> syntactically it could look like a name, or perhaps a subscripted name
> as below, x[i]. Maxima is inconsistent in treatment of subscripted names
> as variables.
>
Yes I understand this but in many cases (like in mentioned text
about assignment) describes usual variables (symbols) and
indexed variables separately. And this is the only
right approach since as you mentioned Maxima isn't consistent
in tearing usual and indexed variables.
> The term function also has problems.
>
> Is solve() a Maxima "function" ? or should solve be referred to as
> something else? Like a command?
> There is a mathematical cos() function which is not the same as the
> cos() of Maxima. They share a lot of properties, but not all.
> Tradition in programming languages says that (in a functional
> programming language), a function applied to a set of arguments will
> always return the same value for the same arguments. This is not true
> in Maxima, generally.
>
I'd like to see all Maxima functions subdivided into several
well defined classes like mathematical functions, declarations, etc.
Unfortunately it is not so easy to work out such a system which
will make everybody happy.
> I think that for the documentation to talk about global "variables" and
> "flags" is kind of sloppy.
> A flag traditionally had only 2 values 0/1 or true/false. This is not
> the case in Maxima.
I agree on 100%.
--
Vadim V. Zhytnikov
<vvzhy at mail.ru>
<vvzhy at netorn.ru>