On Thu, Mar 03, 2011 at 10:09:21PM -0800, Richard Fateman wrote:
>On 3/3/2011 8:30 PM, redneb at gmx.com wrote:
>
>To introduce a new form F to Maxima, you have to consider how it will
>work in EVERY circumstance. Will the behavior that
>"automatically falls out" be acceptable, or do you have to write special
>programs. e.g. What do you want to do
>with integrate(F...) or taylor(F ...) or diff(F ..) or save( )...
>etc etc.
>
>We don't even have a laundry list of "etc".
>
>Another special form is Poisson series...
I think that what I propose (i.e. changing the way maxima outputs noun
forms of infix operators) is simple and doesn't cause problems like
that. For example, suppose that you have a function that does LU
decomposition for matrices. Then this function could return a product of
the form
P.L.U
but with matrix multiplication as noun. If the user wishes to extract
one of the 3 matrices from the product, they could just do something
like part(%,3). If they want to evaluate the product then they could
just do a ev(%,nouns). So you get the benefits of both lists and
expressions. This seems like a better idea than inserting the simp flag
here and there. As for situations like integrate(...) or taylor(...)
that you mention, you just deal with them the way you would deal nouns
in general.
They only problem with using nouns right now for the above example is
that maxima would print the above product as
'?mnctimes(P,L,U)
which looks very ugly.