On Tue, 24 Apr 2018 23:46:34 +1000
Nick Coghlan
On 24 April 2018 at 23:38, Yury Selivanov
wrote: I propose to use the following syntax for assignment expressions:
( NAME = expr )
I know that it was proposed before and this idea was rejected, because accidentally using '=' in place of '==' is a pain point in C/C++/JavaScript.
That said, I believe we can still use this syntax as long as we impose the following three restrictions on it:
1. Only NAME token is allowed as a single target.
2. Parenthesis are required.
3. Most importantly: it is *not* allowed to mask names in the current local scope.
While I agree this would be unambiguous to a computer, I think for most humans it would be experienced as a confusing set of arcane and arbitrary rules about what "=" means in Python.
If the ambition is to find a piece of syntax that reads as "binds", then we can use a variation on the FLUFL operator: "<->". Regards Antoine.