----- Original Message -----
From: "Robert Dodier" <robert.dodier at gmail.com>
>
> I see your point, but the line between data structures and
> mathematical objects is pretty blurry, so I don't think it's
> practical to try to distinguish the two. A uniform policy would
> be easy to explain -- I am inclined to support a policy of
> never sharing data (or at least never appearing to share
> data).
This is equivalent, I think, to making matrices immutable (that is, once
they are constructed
you cannot alter the entries).
It means that for a matrix M, doing
M[4,5]: x
is meaningless.
You would have to do something like newM: substpart(M, 4,5, x)
returning the new matrix.
I don't think people would be happy with this.
Conflating arrays and matrices is a classic "solution".
There is a "matrice" package in Macsyma, which you can
read about to see other possible designs.
RJF