"Michael Ulm" <michael.ulm / isis-papyrus.com> wrote in message news:4506685A.8000309 / isis-papyrus.com... > Just Another Victim of the Ambient Morality wrote: > >> "MonkeeSage" <MonkeeSage / gmail.com> wrote in message >> news:1158024640.933843.82830 / i42g2000cwa.googlegroups.com... >> >>>Dave Burt wrote: >>> >>>>If you want a matrix-like data structure (rather than a mathematical >>>>matrix), why not use an array of arrays? >>> >>>A mathematical matrix is just a dimensional arrangement of data into >>>"rows" and "columns", thus allowing for certain algorithmic >>>relationships to be defined and applied (e.g., canonical >>>decompositions). Every matrix (i.e., the actual matrix considered as a >>>complex value) is immutable and has a unique identity, just like every >>>number -- that's true -- but they can also be permuted or otherwise >>>transformed into different matrices. Why should one have to do that >>>constructively (i.e., construct a new matrix "from scratch"), rather >>>than destructively (i.e., change the existing matrix "in place"). Think >>>of it like this: n = 1; n = n + 1 -- even though the number 1 is >>>immutable and has a unique identity, the reference to it is not, and >>>can thus be destructively altered by assignment with the result that it >>>refers to new identity. It would be a pain to have to do o = n + 1, p = >>>n + 2 (i.e., creating new references every time the data changes), just >>>because 1 is immutable. Why should a matrix be any different? Mabye I'm >>>missing something... >> >> >> As far as I can tell, matrices are no different. Your example shows >> that 1 is immutable but references to it can be re-assigned, so you can >> do: >> >> n = 3 >> n = n + 1 >> >> >> Matrices are no different and, so, you can do: >> >> >> n = Matrix.scalar(2, 3) >> n = n + Matrix.I(2) >> >> >> In both cases, the "number" types are immutable but the references >> to them are not, as you say. They both work exactly the same way. What >> are you trying to say? > > I think he's trying to say, that there is no rational reason for > leaving out the []= operator, and I agree. Well, yeah, I got that. It's just that he spent this whole paragraph on a rationale that wasn't true so I was wondering what he was really trying to get at for his rationale...