[Python-Dev] comprehension abbreviation (was: Adding any() and
all())
Gareth McCaughan
gmccaughan at synaptics-uk.com
Mon Mar 14 14:23:59 CET 2005
On Monday 2005-03-14 12:42, Eric Nieuwland wrote:
> Gareth McCaughan wrote:
>
> > I'd like it, and my reason isn't "just to save typing".
> > There are two reasons.
> >
> > 1 Some bit of my brain is convinced that [x in stuff if condition]
> > is the Right Syntax and keeps making me type it even though
> > I know it doesn't work.
> >
> > 2 Seeing [x for x in stuff if condition] triggers my internal
> > duplicated-stuff alarm, and it's distracting, in the same sort
> > of way as it's distracting in C or C++ seeing
>
> The full syntax is:
> [ f(x) for x in seq if pred(x) ]
> being allowed to write 'x' instead of 'identity(x)' is already a
> shortcut, just as dropping the conditional part.
>
> Remember we're doing set theory stuff here. IMHO we should follow its
> notation conventions as much as we can.
I'm well aware of what the full syntax is; being allowed to
write "x" instead of "identity(x)" is *not* a "shortcut" but
a perfectly straightforward unexceptional instance of the
usual syntax; list comprehensions already have neither the
syntax nor the semantics of set-theorists' comprehensions;
and in fact no set theorist would be at all troubled by seeing
{ x in S : predicate(x) }
which is the nearest equivalent in mathematical notation
for the abbreviated comprehension expressions being discussed.
Other than that, I quite agree :-).
--
g
More information about the Python-Dev
mailing list