On 10 Sep 2008, at 22:22, Cliff Wells wrote:
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.
So what does: a = (if False: 1) evaluate to? -- Arnaud