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).
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.
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 =)