On Friday, 6 August 2021 at 15:59:27 UTC-7 Kwankyu Lee wrote:

> On Saturday, August 7, 2021 at 5:47:54 AM UTC+9 Nils Bruin wrote:
>
>> So how bad would it be to potentially double the number of vector spaces 
>> in existence by giving them an extra parameter determining whether fresh 
>> vectors (such as those resulting from vector arithmetic) should be mutable 
>> or not.
>>
>
> Having vector.immutable() method that returns the same vector but set 
> immutable would be a simpler solution for your annoyance. No?
>

I don't think so. Between writing imm(v+w) and (v+w).immutable() I think 
the first version is much easier to write. However, the real annoyance is 
coming from the fact that what I would write every time is a dictionary 
like { v+w : ... } and every time it will cost me getting an error message 
before I correct it to { imm(v+w): ...}.
With an option on the parent, it would cost me one error message in the 
session before I change the parent construction to

V=VectorSpace(k,n, immutable_vectors=True)

and then I'm good for the rest of the session. I've been sceptical about 
such an option before and for library use I don't think it's such a big 
deal, but I've now encountered in real life an interactive scenario where 
it's super-annoying. It seriously made me consider moving the computation 
over to magma, where hashing sums of vectors is no problem at all (the 
syntax for associative arrays is a little less convenient, though...).

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/dec531dd-a8a6-47b7-8739-7a39104b6e33n%40googlegroups.com.

Reply via email to