nats :: [ Integer ]
nats = from 0 where
from x = x : from (x+1)
fibs :: [ Integer ]
fibs = 0 : 1
: zipWith (+) fibs ( drop 1 fibs )
das ist möglich, wenn der tail
jeder Listenzelle erst bei Bedarf erzeugt wird.
(Bedarfsauswertung, lazy evaluation)
lazy Liste = Stream = Pipeline, vgl. InputStream (Console)