Guards

Guards sind eine alternative, oft lesbarere Syntax für bedingte Ausdrücke (if-then-else). Sie erlauben es, mehrere Bedingungen nacheinander zu prüfen. Sie werden mit einem | eingeleitet. otherwise dient als Standardfall.

filter f (x:xs)
  | f x       = x : filter f xs
  | otherwise = filter f xs