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 :)

Cheers,
Nick.

--
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
            http://boredomandlaziness.skystorm.net
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to