News for hackers. Stuff that matters.
Re:PEP 572: Python assignment expressions has been accepted by icebraining on Tuesday July 03, 2018 @06:00AM (#17448904)
Python has explicitly discouraged functional-style for a long time, I don't think that's going to change. And frankly, the whole language is quite, I'd even say extremely, mutable; I'm not sure a functional syntax works well with that.
Re:PEP 572: Python assignment expressions has been accepted by aib on Tuesday July 03, 2018 @06:28AM (#17449014)
The problem is, python list comprehensions are very... specific. Add to that the brokenness of if...else and you get a very quirky and specific sublanguage that is hard for outsiders to read. And this is before we take into account the locals/scope/clojure discussion in the link and the PEP (which I frankly did not bother to read.)

On the other hand, you have a concept which translates easily to any language with first-class functions and lambdas. Even the syntax stays the same among languages which use "f(x,y)" for function evaluation and parameter passing.

/* This post is for those occasions when a list comprehension style is advocated over a functional style, which I know was not necessarily what you were doing in your comment. But I think the two points are valid enough on their own. */

Re:PEP 572: Python assignment expressions has been accepted by kstrauser on Tuesday July 03, 2018 @11:36AM (#17451033)
> Add to that the brokenness of if...else

Could you elaborate on that?

Re:PEP 572: Python assignment expressions has been accepted by aib on Wednesday July 04, 2018 @07:44AM (#17456653)
> > Add to that the brokenness of if...else

> Could you elaborate on that?

It's a very opinionated statement on my part. `if COND then TRUE-CASE else FALSE-CASE` is the correct form to use, in my opinion. Python uses `TRUE-CASE if COND else FALSE-CASE`.

Re:PEP 572: Python assignment expressions has been accepted by hellofunk on Thursday July 05, 2018 @01:25PM (#17465074)
Conventional if statements in Python do use your preferred form of `if COND then TRUE-CASE else FALSE-CASE`.

What you are talking about is a different kind of expression, similar to a ternary operator. It is not the same as if...else

Re:PEP 572: Python assignment expressions has been accepted by aib on Thursday July 05, 2018 @06:38PM (#17467465)
The reason it's not the same as if...else is that it's freaking backwards :D
Re:PEP 572: Python assignment expressions has been accepted by hellofunk on Friday July 06, 2018 @04:53AM (#17469932)
You said:

> Python uses `TRUE-CASE if COND else FALSE-CASE`.

And this is wrong -- this is not how Python if statements work.

Re:PEP 572: Python assignment expressions has been accepted by aib on Friday July 06, 2018 @08:20AM (#17470775)
> > Python uses `TRUE-CASE if COND else FALSE-CASE`.

> And this is wrong -- this is not how Python if statements work.

Huh? Didn't you yourself say I was not talking about if statements:

> What you are talking about is a different kind of expression, similar to a ternary operator. It is not the same as if...else

In any case, I'm talking about the case that goes `TRUE-CASE if COND else FALSE-CASE`, as can be deduced from my typing `TRUE-CASE if COND else FALSE-CASE`.