On Tue, Jun 12, 2018 at 10:25 PM, Michael Selik <mike@selik.org> wrote:
On Tue, Jun 12, 2018 at 11:08 AM Mikhail V <mikhailwas@gmail.com> wrote:
On Tue, Jun 12, 2018 at 7:42 PM, Clint Hepner <clint.hepner@gmail.com> wrote:
So the idea was about an insert/append operator. Which would use augmented operator. The operator may be /= or ^=. (I like ^= more, so I'll put here example with it).
The "/" operator means divide. How do you divide a list? The "^" operator means exclusive-or. Again, strange concept for a list.
Allowed standard characters are so - they already mean something and there are so few (even less if throw away ugly looking). For me the plus character + means sum of numbers. So for an array: A += 1 Means for me unequivocally increment each element of array by 1. And this: A += B Means for me increment each element of A by corresponding values of B. BTW that is how plus operator works for Numpy arrays. So I don't think it is a precise thing how logical this or that character suits an operation. Everybody understands that overloading of operators is for convenience and it's just a shortcut for some frequent usage. As I understand, overloading some operators for certain object type (list in this case) has relatively low cost in terms of implementation. As for me - I'm fine with append() method and use it all the time. Frankly speaking, I was working on another syntax idea and it turned out that actually augmented operators may be very useful for that particular syntax design.
L += var and L = L + var
are different, so it seems to me they were not meant to be bound together.
One is mutation, the other isn't, but aside from that, the result is equivalent.
You're right of course. I was just confused by the fact that L += "aa" # works L = L + "aa" # gives TypeError But for consistent types both should work the same.
I think you'll find it's natural once you get used to slice assignment.
I use slice assignment all the time with Numpy arrays, though for list element appending I prefer append() method. M