Funktionales Haskell

main = print 
     $ foldr (+) 0 
     $ take 100 
     $ unfoldr ( \ c -> Just (c, c+1) ) 1
Implementierung (in Prelude, List):
unfoldr :: (b -> Maybe (a,b)) -> b -> [a]
unfoldr f b = case f b of 
    Nothing    -> []
    Just (a,b) -> a : unfoldr f b
foldr :: (a -> b -> b) -> b -> [a] -> b
foldr f z []       = z
foldr f z (x : xs) = f x (foldr f z xs)

Funktionen sind Bürger erster Klasse (dürfen lokal definiert werden, Argument und Resultat anderer Funktionen sein)



Johannes Waldmann 2004-11-30