On 8/1/11, Stavros Macrakis <macrakis at alum.mit.edu> wrote:
> format1 (called by subst, part, displa, etc.) does
> conversions like ((mexpt) x -1) => ((mquotient) 1 x); it could equally well
> transform #c(1 2) => ((mplus) 1 ((mtimes) 2 $%i)).
Yeah, that makes sense to me.
In general, I'd like to see Maxima take a laissez-faire attitude
toward Lisp complexes and rationals.
It's OK if Maxima doesn't know what to make of sin(z) where z is
a Lisp complex or rational, but it's not OK if it triggers an error.
I claim the correct mathematical approach to unknown objects
is to leave them alone; that way an interested party can devise
the functions or identities or whatever to handle them.
Triggering an error is essentially a declaration that there can
never be a way to handle the objects in question.
Maybe in some limited cases, an error is appropriate.
But that certainly shouldn't be the option of first resort.
best
Robert Dodier