--- Steven Bethard <[EMAIL PROTECTED]> wrote: > Steve Howell wrote: > > --- George Sakkis <[EMAIL PROTECTED]> wrote: > >> from itertools import count, ifilter > >> def sieve(): > >> seq = count(2) > >> while True: > >> p = seq.next() > >> seq = ifilter(p.__rmod__, seq) > >> yield p > [snip] > > Is there a way to broaden the problem somehow, so > that > > it can be a longer solution and further down on > the > > page, and so that I can continue to enforce my > > somewhat arbitrary rule of ordering examples by > how > > long they are? > > How about we just comment it better? > > import itertools > > def iter_primes(): > # an iterator of all numbers between 2 and > +infinity > numbers = itertools.count(2) > > # generate primes forever > while True > > # generate the first number from the > iterator, > # which should always be a prime > prime = numbers.next() > yield prime > > # lazily remove all numbers from the > iterator that > # are divisible by prime we just selected > numbers = itertools.ifilter(prime.__rmod__, > numbers) > > I think that's 17-ish, though you could shrink it > down by removing some > of the spaces. >
Actually, just one small caveat--I'd still want the program to print out the results. I think I've followed that convention for all the other programs. ____________________________________________________________________________________ Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545433 -- http://mail.python.org/mailman/listinfo/python-list