,,Funktionales`` Programmieren

Das erste Argument von partition ist eine Funktion:

--  Spezifikation:
partition :: (a -> Bool) -> [a] -> ([a], [a])

-- Benutzung:
partition even [1,2,3,4,5]
partition ( == 'o' ) "foobar"

-- Implementierung:
partition p [] = ( [], [] )
partition p (x : xs) =
    let ( ys, zs ) = partition p xs
    in  if p x then ( x : ys,     zs )
               else (     ys, x : zs )



Johannes Waldmann 2005-01-28