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