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 <algor...@yahoo.com> wrote:
> ----- Mensaje original ----
>> De: Gerald Britton <gerald.brit...@gmail.com>
>> Para: rdmur...@bitdance.com
>> CC: python-dev@python.org
>> 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
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to