
Are both things: Python generators and lazy evaluation, two different tools that solve the same domain of problems?
Daniel
They're definitely in the same domain, and a generator may be viewed as a lazy evaluator. The business term for these things is JIT (just in time), a principle used in source code evaluation as well. It's *not* always an advantage for some busy bee resource hog to run out ahead and evaluate the next 20 million prime numbers, if you're really only needing another five or ten of them. A lazy evaluator compresses enough knowledge (we hope) to spit back a *next* in sequence, without overloading the processor with a bunch of extraneous results. What I see as a pitfall of lazy evaluation is identified by Wittgenstein as well: this tendency to see a machine for generating the next in sequence, and taking that as some mystical validation for infinity, as in "the terms are already all there, in the machinery." These mystics waste clock cycles boasting about how *their* language already has all the natural numbers built in, etc. etc. At least in Python the syntax reminds us we've been handed a state machine, not a finished sequence. My advice: ignore these mystics, at least when they've had too much to drink. Kirby