I saw Rob Pike’s excellent Google Tech Talk on “Concurrency and Message Passing in Newsqueak” a few days back. The talk has some very interesting ideas on dealing with parallelism and concurrency. I strongly recommend that you watching it.
I couldn’t resist translating the prime sieve mentioned in the talk into Python.
Here it is:
import sys def filter_multiples(n, numbers): return (k for k in numbers if k % n != 0) def prime_sieve(max): p, n = 2, xrange(2, max+1) while True: yield p n = filter_multiples(p, n) p = n.next() def main(argv): try: n = int(argv[1]) except (IndexError, ValueError): n = 100 for i in prime_sieve(n): print i, print if __name__ == '__main__': main(sys.argv)