Infixové operátory jsou vlastně také funkce a můžeme je opět definovat rovnicemi. Například takto lze definovat operátor konkatenace seznamů:
(++) :: [a] -> [a] -> [a] [] ++ ys = ys (x:xs) ++ ys = x : (xs++ys)
![]() | Poznámka: |
Lexikálně se infixové operátory skládají pouze ze „symbolů“
na rozdíl od normálních identifikátorů, které jsou alfanumerické. Haskell
nemá žádné prefixové operátory s výjimkou minus (-), který je jak infixový,
tak prefixový.
| |
Jako další příklad uveďme důležitý infixový operátor pracující s funkcemi - operátor pro kompozici funkcí:
(.) :: (b->c) -> (a->b) -> (a->c) f . g = \ x -> f (g x)