All lists *are* treated equally. But simplified Maxima lists have a
canonical order. It is possible to turn off simplification
(simp:false), but most Maxima operations are not guaranteed to work
properly with simp:false.
Since "." is non-commutative, naturally the ordering is not changed.
You might also want to look at inflag, which controls how expressions
are interpreted as lists. For example:
args(a*b/c) => [a*b,c]
args(a*b/c),inflag:true => [a,b,1/c]
-s
On Wed, Mar 25, 2009 at 9:06 AM, Jaime Villate <villate at fe.up.pt> wrote:
> On Seg, 2009-03-23 at 10:00 -0400, Stavros Macrakis wrote:
>> As a general rule, Maxima allows operations which take lists as
>> arguments (delete, append, reverse, map, cons, endcons, last, length,
>> rest, member) to take any functional application as an argument and
>> act on the arguments.
> Neat!
> Although not all "lists" are treated equally. Consider this example:
>
> (%i1) rest([a,b,c,d,e]);
> (%o1) ? ? ? ? ? ? ? ? ? [b, c, d, e]
> (%i2) rest(a.b.c.d.e);
> (%o2) ? ? ? ? ? ? ? ? ?b . c . d . e
> (%i3) rest(a*b*c*d*e);
> (%o3) ? ? ? ? ? ? ? ? ? ? b c d e
> (%i4) rest(a+b+c+d+e);
> (%o4) ? ? ? ? ? ? ? ? ?d + c + b + a
>
> How can I prevent the simplification of the sum in %i4 in order to get
> b+c+d+e in %o4?
>
> Regards,
> Jaime
>
>
>