Generische Instanzen (I)

class Eq a where
    (==) :: a -> a -> Bool
Vergleichen von Listen (elementweise)

wenn a in Eq, dann [a] in Eq:

instance Eq a => Eq [a] where
  l == r = case (l,r) of
    ( [], [] ) -> True
    (x : xs, y : ys) 
        -> (x == y) && ( xs == ys )
    ( _, _ ) -> False
Übung: wie sieht instance Ord a => Ord [a] aus? (lexikografischer Vergleich)



Johannes Waldmann 2012-06-25