Inconsistency in array referencing



In an expression like q[5], Maxima evaluates q before subscripting it:

     QQQ[5] : 'QQQ5$
     q: 'QQQ$
     QQQ[5] => QQQ5
     q[5] => QQQ5

However, in an assignment like q[5]:'q5, Maxima does *not* evaluate q before
subscripting it:

    q[5]: 'q5$
    q[5] => q5
    QQQ[5] => QQQ5

This is inconsistent, and means that workarounds (like buildq) are needed to
subscript an array passed as an argument.

I suggest we change the semantics of subscripting in assignment so that in
the above, q[5]:'q5 assigns the value q5 to QQQ[5].

Discussion?

        -s

PS This came up when I tried to rewrite Leo's tensorfactory in a simpler
way.