On Sat, Apr 3, 2021 at 3:49 AM John
These are good points.
I would suggest the unary - creates serious readability concerns and should only be valid as 0 x -; ~ and unary + raise other considerations. The ~ operator is extremely useful in bitshift and bitmask operations, and has an ugly ~x representation as 0 1 - x ^ in the same way as unary -x is 0 x - (which is elegant).
Unary can't be assumed from 0 x +, and it seems inelegant to use things like ~x -x +x (i.e. without white space)
That would mean that unary plus is no longer available to any type that isn't strictly a number. Python doesn't make mandates like that.
from collections import Counter c = Counter(a=1, b=2, c=-4) +c Counter({'b': 2, 'a': 1}) c Counter({'b': 2, 'a': 1, 'c': -4}) 0+c Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'Counter'
What's the advantage that you're offering? This is on python-ideas, so I have to assume that you're proposing a change or enhancement to the language here. ChrisA