PEP 308 - ternary operator
jcm
joshway-without-spam at myway.com
Sun Feb 16 10:39:12 EST 2003
Wolfgang Strobl <wks000 at t-online.de> wrote:
...
> Right. It even allows nightmares like
> h (*p++ - ' ' || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? 7 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? 36 : 59 * 89 * 5 * 2 : *p++ - ' '
> || !p++ ? 6587 * 77 : 9 + 2 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? 9 : 5 : 37 : *p++ - ' '
> || !p++ ? 5 + 5 : 4 : 20 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? 32 : 431 * 4 * 59 * 17 : *p++ - ' '
> || !p++ ? 17 : 34 : 19 : *p++ - ' ' || !p++ ? 8 * 2 : *p++ - ' '
> || !p++ ? 2 : 26 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? 82 * +576 : *p++ - ' '
> || !p++ ? 33 : 22 : 5 * 5 : 3 * 4 : 3 : *p++ - ' '
> || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? 6 + +17 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? 13 : 6 : 9 * 2 : *p++ - ' '
> || !p++ ? 15 : 7 * 2 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? 27 : 24 : 31 : *p++ - ' ' || !p++ ? *p++ - ' '
> || !p++ ? +29 : 30 : 1);
> I had to look at the c parse tree in order to understand what it does.
I'm not moved by this example. Rewrite it with Python's "(a and [b]
or [c])[0]", or even just "a and b or c", and see if you like it
better. (And of course a function call or something to approximate
C's "p++".)
More information about the Python-list
mailing list