Re: [Python-Dev] Is PEP 572 really the most effective way to solve the problems it's targeting?

2018年4月26日 17:48:46 -0700

[Mike Miller]
>> - How are other modern languages solving this issue?
[Greg Ewing <[email protected]>]
> In all the languages I can think of that allow assignments in
> expressions, there is only one assignment operator -- a stand
> alone assignment is just a bare assignment expression.
Pretty much so, but I don't know what "modern" means to Mike. The R
language may set a record for, umm, innovation here:
"""
There are three different assignment operators: two of them have
leftwards and rightwards forms.[1]
"""
So there are 5 assignment operator spellings in R:
=
<-
->
<<-
->>
Note that the link doesn't tell the whole story either; e.g., they
don't all have the same precedence level. And, in addition to the 5
infix spellings shown above, there are also prefix (looks like a
2-argument function call) spellings.
Back on Earth ;-) , I think it's worth it to point out that only
languages (with assignment expressions) aping C use "=" for assignment
and "==" for equality. That was a Really Bad Idea that all other (not
aping C) languages I know of avoided.
But I'm not sure any of this is relevant to what Mike meant by "this issue".
> But those languages were all designed that way from the start.
> I'm not aware of any that began by forbidding assignment in
> expressions and then added it later.
Me neither. It's certainly the case that Guido would not have
designed a language that aped C's poor decision here. At its very
start, Python used "=" for both assignment and equality testing (and
== was a syntax error). So I think it's evident that, at the time, he
didn't envision ever adding assignment expressions.
[1] https://www.rdocumentation.org/packages/base/versions/3.5.0/topics/assignOps
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to