On Mon, 2004-05-03 at 09:58, Jewett, Jim J wrote:
Guido van Rossum:
My counter to that is that *any* use of genexps where the consumer doesn't consume (or discard) the iterator before the next line is reached is extremely advanced use.
This might be worth putting in the PEP and the docs --
We are in rather dire need of docs and a revised PEP.
Normal usage of a generator expression is to immediately consume the entire sequence, or to discard the remainder.
If portions of a generator *are* used later, programmers may need some extra precautions to ensure that all names still have the desired bindings.
There may be a general rule that functions that make use of free variables are best programmed in a functional style, where the function doesn't depend on side-effects to those variables. Jeremy