Kapitel 6: Programmiertechniken hugs LazyEval ghc -c LazyEval.lhs > module LazyEval > where < iterate :: (a -> a) -> a -> [a] < takeWhile :: (a -> Bool) -> [a] -> [a] > group :: Int -> [a] -> [[a]] > group n = iterate (drop n) > # takeWhile (not . null) > # map (take n) > (#) :: (a -> b) -> (b -> c) -> (a -> c) > f # g = g . f