On 6/17/11, carolus <worwor at bellsouth.net> wrote:
> On 6/17/2011 11:15 AM, Robert Dodier wrote:
>> (Yes, it is unclear and confusing to try to distinguish
>> between programming functions and symbolic functions.
>> Sorry about that.)
> What is the difference? I've noticed "f(x) :=" for function definition
> and "f[x] :=" for initializing matrices. Is that what you are talking
> about?
Well, in conventional programming languages, the argument
of a function must evaluate to some appropriate type,
otherwise the function barfs out an error.
Maxima and other symbolic math systems can handle
inappropriate arguments via partial evaluation.
e.g. when x and y are numbers, then x + y => number.
But if x, say, x is a symbol and y is a number, then x + y => x + number.
Later on, when x has a numeric value, you can reevaluate it
and get x + number => number.
Anyway, Maxima has some functions which act like ordinary
programming language functions, and "first" is one of them.
The argument of first must be a list, otherwise it's an error.
On the other hand, subscripts like x[1] are OK when x is
not any subscriptable object.
best
Robert Dodier