Hi Nathann, What problem are you solving by using immutable matrices/vectors? Why is anything immutable for what you are doing?
For reference, I explained above the actual problem which motivated my writing immutable matrices/vectors for Sage in the first place. -- William On Fri, Oct 23, 2015 at 10:33 AM, Nathann Cohen <nathann.co...@gmail.com> wrote: >>> I do not see why matrix.row(0) should return a *copy* of the row when >>> the matrix is immutable. >> >> >> It depends on the implementation. > > I agree, and that was my point. As you say, under different > circumstances (different implementation of matrices) we may have > chosen to return 'views' on the rows of an immutable matrix instead. I > am not proposing to do this in Sage: this would indeed require a heavy > amount of changes. > > What I wanted to show is that there is nothing in the semantics of > matrix.row(i) that says that it is necessarily a copy. In different > software people did it differently, and that is fine too. > > Thus, I claim that nothing in the semantics of .row( i ) hints at a > copy (especially for immutable matrices), and thus I do not believe > that .row() should follow the behaviour of copy(a_matrix). > > In particular, I still believe that the behaviour of our objects should be > [1]: > - immutable+immutable = immutable > - immutable*immutable = immutable > - immutable_matrix.row( i ) is an immutable vector. > > As two examples showed, we have to get out of our way to set "back" to > immutable objects which we expect to be from the start. Otherwise it > is indeed very (very) hard to work with sets of immutable objects. > > Nathann > > [1] As it is the case in Python, as illustrated above with tuples. > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- William (http://wstein.org) -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.