Op 2005-01-18, Nick Coghlan schreef <[EMAIL PROTECTED]>:
> Raymond Hettinger wrote:
>> [Delaney, Timothy C]
>> 
>>>Nick's other suggestion - that genexps propagate __len__ - might
>>>still be interesting. Of course, it would only be applicable for
>>>unconditional genexps(i.e. no if clause).
>> 
>> Length transparency for iterators is not as general as one would expect.  I 
>> once
>> spent a good deal of effort exploring where it made sense, and I was 
>> surprised
>> to find that it only rarely works out.  Length transparency is an 
>> unexpectedly
>> thorny subject with many dead-ends which precludes a fully general solution 
>> such
>> as that proposed by Nick.
>> 
>> For a recap of my research, see the docstring for Lib/test/test_iterlen.py .
>
> """The situation slightly more involved whenever an object allows length 
> mutation during iteration. """
>
> Ouch. Nice understatement.
>
> It's rather unfortunate that we can't make use of the length information even 
> when the source *doesn't* mutate, though. I'll have to think some more to see 
> if 
> I can come up with any concrete ideas for you to shoot down :)

Something else I was thinking about. I think it would be nice if the
python compilor could figure out whether a genexp in a list or tuple
expression always generates the same list or tuple and then instead
of generating code would generate the list or tuple in place.

-- 
Antoon Pardon
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to