A while ago, I got interested in reimplementing various versions of the Sieve of Eratosthenes. I eventually tacked together a threaded version that could calculate all the primes up to a trillion in about 20 minutes, and then kind of got bored. Today, however, there's an interesting link to an article on Lambda the Ultimate about sieves. In particular, it makes the claim that the normal "sieve" code that people use to illustrate the effectiveness of functional programming languages isn't actually a sieve at all. Interesting!