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