data Stream a
= Cons { head :: a, tail :: Stream a }
zipWith :: (a -> b -> c)
-> Stream a -> Stream b -> Stream c
zipWith f (Cons x xs) (Cons y ys) =
Cons (f x y) (zipWith f xs ys)
f = Cons 0 (Cons 1 (zipWith (+) f (tail f)))
geschlossener (algebraischer) Ausdruck für erzeugende Funktion?