Why are you continuing to insist on using the symbol "@" after all these problems have been pointed out I wonder? Just suggest $ or something else that is a syntax error today and we can move on with discussing the merits of the underlying idea itself?
/ Anders > On 9 Mar 2019, at 20:03, Jonathan Fine <jfine2...@gmail.com> wrote: > > SUMMARY > Acknowledgement of an error, and clarification of behaviour of '@b' vs > '@ b'. I claim that once '@b' is accepted as an operator, the > behaviour is perfectly natural and obvious. > > AN ERROR > In a previous post, I mispoke. I should have written > a@b+1 > is valid Python before and after, but with different syntax. > (a @ b) + 1 # Before - operator is '@'. > a @b (+1) # After - operator is '@b'. > > Chris Angelico kindly pointed out that my Before value was wrong. > Thank you, Chris. > > WHITE SPACE AND OPERATORS > Chris also correctly points that > '@ b' is parses as the '@' operator followed by the identifier 'b' > '@b' parses as above (BEFORE) > '@b' parses as the '@b' operator (AFTER) > > He then correctly says that in my proposal the lack of whitespace > after an operator can cause the operator to absorb a following > identifier. > > However, something similar ALREADY happens in Python. >>>> a = nota = True >>>> not a > False >>>> nota > True > > Today, whenever a Python operator ends in a letter, and is followed by > an identifier, white space is or some other delimiter is required > between the two. Python, rightly, refuse to guess that 'notary' might > be 'not ary'. > > Here is another example >>>> e = note = None >>>> e is not e > False >>>> e is note > True > > This is not quite what's happening with '@b'. With 'is not e' the > following identifier 'e' absorbs the 'not' from the operator to create > 'note'. > > And finally >>>> False is not None > True >>>> False is (not None) > False > > The 'natural language' operators appear in > https://docs.python.org/3/reference/expressions.html#operator-precedence > > In my suggestion, '@' consumes for as long it can, first a letter, and > then name characters. This is exactly the same as with 'a' or 'b'. > > I think this is a problem, but not nearly so bad as Chris suggests. > Some people have argued that the proposed semantics for dict + dict > are natural and obvious, once the behaviour of Python elsewhere is > understood. I claim the same for '@b' and '@ b', once we allow '@b' as > an operator (which was the whole purpose of the proposal. > > By the way, it's likely that most users won't know that '@' by itself > is an operator, until they come to use matrices. > > -- > Jonathan > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/