Default-Methoden (zur Ü. 5. 4.)

offizielle Definition von class Ord a, siehe http://www.haskell.org/onlinereport/basic.html#sect6.3.2

class  (Eq a) => Ord a  where
    -- Deklarationen:
    compare              :: a -> a -> Ordering
    (<), (<=), (>=), (>) :: a -> a -> Bool
    -- (gegenseitige) Default-Implementierungen:
    compare x y | x == y    = EQ
                | x <= y    = LT
                | otherwise = GT
    x <= y  = compare x y /= GT
    x <  y  = compare x y == LT
Absicht: Man implementiert entweder compare oder (<=), und erhält restliche Methoden durch Defaults.

Aufgabe: Was passiert, wenn man nur (<) implementiert, und (<=) aufruft? -- Beachte bei instance Ord Student



Johannes Waldmann 2004-11-30