Code snippet from Julien Wetterwald - scala-kurz.org
def sieve(s: Stream[Int]): Stream[Int] = Stream.cons(s.head, sieve(s.tail filter (_ % s.head != 0)))
val primes = sieve(Stream.from(2))
Stream of prime numbers calculated using the Sieve of Eratosthenes