On Tue, Apr 14, 2015 at 12:42 PM, Paul Rubin <no.email@nospam.invalid> wrote: > Just for laughs, this prints the first 20 primes using Python 3's > "yield from": > > import itertools > > def sieve(ps): > p = ps.__next__() > yield p > yield from sieve(a for a in ps if a % p != 0) > > primes = sieve(itertools.count(2)) > print(list(itertools.islice(primes,20)))
Small point: Calling dunder methods is usually a bad idea, so I'd change this to "p = next(ps)" instead. But yep, that works... inefficiently, but it works. ChrisA -- https://mail.python.org/mailman/listinfo/python-list