Sieb des Eratosthenes:
berechnet die unendliche Liste aller Primzahlen,
durch wiederholtes Filtern aus der unendlichen Liste [2..]
primes :: [ Integer ] primes = sieve [ 2 .. ] sieve :: [ Integer ] -> [ Integer ] sieve (x : ys) = x : sieve ( filter ( \ y -> 0 < y `mod` x ) ys )lazy evaluation ist softwaretechnisch sinnvoll, denn damit kann man Erzeugung von Verarbeitung von Daten trennen.
Vgl. XML-Parser, die Teildokumente erst bei Bedarf lesen/verarbeiten.