Fallunterscheidung, Pattern Matching

data T = A { foo :: Int } 
       | B { bar :: String }

Fallunterscheidung:

f :: T -> Int
f x = case x of
    A {} -> foo x
    B {} -> length $ bar x

Pattern Matching (Bezeichner f, b werden lokal gebunden):

f :: T -> Int
f x = case x of
    A { foo = f } -> f
    B { bar = b } -> length b



Johannes Waldmann 2010-01-25