On Mon, 31 Jan 2000, Tim Peters wrote:
[Tim]
If I didn't know better <wink>, I'd say there's an actual consensus here: it seems we would all agree to "(if cond then true else false)" spelling.
[Ka-Ping Yee]
Actually, i'm afraid i don't. I initially chose the "then/else" spelling specifically because "if" flags the eye to the beginning of a statement. My line of thinking was, "'then' for expressions, 'if' for statements."
OK, I'm baffled. I probably don't recall your suggestion -- the implication is that it didn't use the word "if"? If so, I probably read it and assumed you left out the "if" my mistake <wink>.
Yeah, my suggestion was, e.g. def abs(x): return x > 0 then x else -x Might as well summarize the other suggestions so far: return x > 0 ? x else -x return x > 0 ? x : -x return if x > 0: x else -x Have i missed any? Oh, yes, and here is the control group. return x > 0 and x or -x return (x > 0 and [x] or [-x])[0] if x > 0: return x else: return -x
Seriously, "excessively novel" isn't called for here: *tons* of languages have used if/then/else for this purpose without difficulty.
Yes, you're right about that.
No keyword has been added to Python since "lambda", and you can be certain Guido will never add another (at least not to Python1) -- this is an absolute non-starter. Ping, *you* used to know this better than anyone <wink>.
Okay, okay. You probably have a better memory about this than i do. :) Assuming that "then" will never be made a keyword, i would probably go with "x > 0 ? x else -x". "if" seems to shout "statement" too loudly at me, and colons seem too loaded. Another issue with the last suggestion: how do you explain putting a colon after the condition but not after the "else"? -- ?!ng