[Python-ideas] Statements vs Expressions... why?

Cliff Wells cliff at develix.com
Wed Sep 10 23:22:43 CEST 2008


On Wed, 2008-09-10 at 21:46 +0200, Christian Heimes wrote:
> Cliff Wells wrote:
> > Any thoughts on this?  I'm sure it's been brought up before, but I
> > haven't found any definitive discussions on why this rather arbitrary
> > design decision continues to hold in the face of a general migration
> > away from imperative languages (especially when it seems it could be
> > changed without much backwards-compatibility issues).
> 
> Two thoughts:
> 
> Please elaborate how you like to change the syntax of Python.

No changes.  Simply lifting of a particular restriction.

>  I like to 
> see some concrete examples how your syntax would look like. I also like 
> to know how your are planing to implement features like lazy evaluation. 
> The if else ternary operator statement is evaluated lazy. The same 
> construct as expression wouldn't be lazy any more.

Why not?

a = ( 
    if a > 1 then: 
        long_calculation()
    else:
        other_long_calculation()
)

Clearly only one of these blocks would be evaluated at runtime.

> 
> Secondly any syntax change won't happen until we start planing Python 
> 4000 ;)

Yes, that's my expectation, although hopefully PyPy will make some of
these things possible to experiment with well before then =)

Cliff




More information about the Python-ideas mailing list