Algorithmen-Schablone f. Listen

Summe der Elemente einer Liste:

sum :: Num a => [a] -> a
sum [] = 0 ; sum (x : xs) = x + sum xs
Länge einer Liste:
length :: [a] -> Int
length [] = 0 ; length (x : xs) = 1 + length xs
Gemeinsame Struktur (Rekursions-Schema):
foldr f z []       = z
foldr f z (x : xs) = f x (foldr f z xs)
(Aufgabe: Typ von foldr)
sum    = foldr ( \ x y -> x + y ) 0 
length = foldr ( \ x y -> 1 + y ) 0
wobei \ x y -> .. eine anonyme Funktion ist

Johannes Waldmann 2004-11-30