Inconsistency when using previously defined variables as arguments to functions
Subject: Inconsistency when using previously defined variables as arguments to functions
From: Richard Fateman
Date: Wed, 26 Jan 2011 06:27:24 -0800
It is possible to define functions in Maxima that quote their arguments
implicitly.
Whether to do so is generally controversial, with people taking strong
stands on
either side of the issue.
x:y
solve ( ...., x) does one solve for x or y?
If you have defined 'i' and forgotten it, then you have made an error.
Some systems require
that you define two distinct classes. Symbols and variables. Only
variables may be given
values. Symbols are 'indeterminates' and can't be assigned values.
A more principled view of this activity is to say that the arguments to
the function sum (etc)
that are themselves functions, must display their bound variables
explicitly.
That is,
limit ( lambda([i], 1/i), infinity)
integrate( lambda([x], a*x+b) , [-1,1])
etc.
On 1/26/2011 5:23 AM, thomas wrote:
> Thank you for your reply. :)
> Even though that is a nice work-around, it doesn't really solve the
> inconsistency-problem. And it's quite inconvinient to have to quote
> the variables in each expression I want to differentiate, limit, etc.
Maybe we should implement a feature so that when you declare a name
constant so you can never assign values to it.
> Also I think that I'm probably not the only person who stumbled uppon
> this problem: when calculating things like "limit(1/i, i, infinity);"
> I might've already forgotten that I defined "i" in the first place,
> and might then use an incorrect result.
That happens. One person's incorrect result is another's correct result.
RJF