OK then, what is the feeling out there about extending the "for"
syntax in general (and by extension list comprehensions and generator
expressions) by adding an optional while clause like this:
for <item> in <iterable> [while [<predicate> | not <predicate>]:
<suite>
The predicate would be tested after an <item> is taken from <iterable>
and before execution of the <suite>. If the predicate evaluates to
false, StopIteration would be raised. This construct would be
equivalent to:
for <item> in <iterable>:
if [not <predicate> | <predicate>]: break
<suite>
Note: this is beyond what I was thinking in the first place, but has
arisen from the ensuing discussion.
Note 2: this would cover itertools.takewhile but not itertools.dropwhile, AFAICS
On Wed, Jan 21, 2009 at 10:27 AM, Vitor Bosshard <[email protected]> wrote:
> ----- Mensaje original ----
>> De: Gerald Britton <[email protected]>
>> Para: [email protected]
>> CC: [email protected]
>> Enviado: miércoles, 21 de enero, 2009 11:38:01
>> Asunto: Re: [Python-Dev] PEP 3142: Add a "while" clause to generator
>> expressions
>>
>> FWIW, there are a few historic languages that implement a compound
>> for-loop: Algol 68, PL/I, SAS et al allow constructs that, if
>> translated to an equivalent (currently invalid) Python-style syntax
>> would look like this"
>>
>> for <item> in <iterable> while <predicate>:
>> <suite>
>>
>>
>> Some also allow for an "until" keyword. I'm not suggesting that we
>> need to do this in Python; it's just interesting to note that there is
>> some precedent for this approach.
>>
>
> Well, you could propose changing the for loop syntax (and by extension
> comprehensions and generators). It's a much more radical proposal, but it
> does keep consistency across the board, which is one of the major flaws of
> the PEP in its current form.
>
> BTW, there is already an "until" keyword in python, it's called "while not" ;)
>
>
> Vitor
>
>
> ¡Todo sobre la Liga Mexicana de fútbol! Estadisticas, resultados,
> calendario, fotos y más:<
> http://espanol.sports.yahoo.com/
>
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com