[Python-Dev] Short-circuiting iterators (original) (raw)
Raymond Hettinger raymond.hettinger at verizon.net
Thu Dec 8 05:15:55 CET 2005
- Previous message: [Python-Dev] Short-circuiting iterators
- Next message: [Python-Dev] Tracker anonymity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Matthew F. Barnes]
The ability to remotely terminate a for-loop also struck me as somewhat interesting:
def estimate(item, iterable): . . . if goodenough: iterable.stop() return result for x in iterable: . . . approx *= estimate(x, iterable)
Good inspiration; wrong technique. For the RightWay(tm), try a functional approach composing a target calculation with a function generating successively more accurate approximations and a consumer function that stops when the desired accuracy is achieved. The idea is to decouple the steps into side-effect-free, reusable components. For a worked-out, comprehensive example, see http://www.md.chalmers.se/~rjmh/Papers/whyfp.pdf .
But these are highly contrived and hardly compelling.
That suggests an answer to your earlier question as to whether itertools.interruptable(iterable) would be a useful addition ;-)
Raymond
- Previous message: [Python-Dev] Short-circuiting iterators
- Next message: [Python-Dev] Tracker anonymity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]