Rekursion über Listen

and :: [ Bool ] -> Bool
and l = case l of 
    x : xs -> x && and xs ; [] -> True 
length :: [ a ] -> Int
length l = case l of
    x : xs ->  1 + length xs ; [] -> 0 
fold :: ( a -> b -> b ) -> b -> [a] -> b
fold cons nil l = case l of
    x : xs -> cons x ( fold cons nil xs )
    [] -> nil
and = fold (&&) True 
length = fold ( \ x y ->  1 + y) 0



Johannes Waldmann 2010-01-25