Hi all,

I just reviewed #8276 based on the discussion in
http://groups.google.com/group/sage-devel/browse_frm/thread/1042edd11b3854b2
.
For me a great problem arises with this change, though the majority
voted for it. I think about it as follows.

The categories framework has introduced a function zero for every
commutative monoid. Its standard definition is return self(0).
MatrixSpace(...)(0) is mutable. Now, we overwrite this in
matrix_space.py, which is an object of this category by zero =
zero_matrix and zero_matrix returns an immutable matrix.
Hence, zero returns a different value, than the framework implies and
I am concerned about this. Still Sage lacks unification and for me the
categories framework promised to change this by defining standard
functions and their return values. I am not opposed to optimized
implementation, but I am opposed to changing return values. Since,
now, I will have to explain my students, that normally zero will
return the same as self(0), but for MatrixSpaces the situation is
slightly different. This is Pandora's box.

I suggest to make zero as well as one just synonyms  for self(0) and
self(1), respectively, and leave zero_matrix and identity_matrix as
they are.
An alternative is to introduce a parameter for these last two
functions immutable=True/False.

What do you think about this?

Martin

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to