W języku Haskell operatory są zwykłymi funkcjami, które domyślnie mają nazwy złożone z symboli i użytego infiks. Można ich używać tak jak zwykły identyfikator owijając je w nawiasach:
λ> :t (+)
(+) :: Num a => a -> a -> a
$
jest tylko ten sam operator niczym. Reprezentuje ona zastosowanie funkcji i jest zdefiniowany następująco:
f $ x = f x
można dostać jego rodzaj jak (+)
:
λ> :t ($)
($) :: (a -> b) -> a -> b
operatorzy Haskell może również być częściowo stosowana jak normalne funkcje, owijając je w nawiasach z argumenty z jednej strony. Na przykład (+ 1)
jest taki sam jak \ x -> x + 1
, a (1 +)
jest taki sam jak \x -> 1 + x
.
To samo dotyczy $
, więc ($ fst client)
jest takie samo jak \ f -> f $ fst client
lub tylko \ f -> f (fst client)
. Fragment kodu, który masz sprawdzić, czy dowolna z listy funkcji zwraca true podane fst client
.
'3. ZYSK !!!! ' – leppie