:: a -> (a -> b) -> b -package:rio -package:ghc-lib-parser -package:vivid package:diagrams-lib
& is a reverse application operator. This provides
notational convenience. Its precedence is one higher than that of the
forward application operator
$, which allows
& to be
nested in
$.
This is a version of
flip id, where
id
is specialized from
a -> a to
(a -> b) -> (a
-> b) which by the associativity of
(->) is
(a
-> b) -> a -> b. flipping this yields
a -> (a
-> b) -> b which is the type signature of
&
Examples
>>> 5 & (+1) & show
"6"
>>> sqrt $ [1 / n^2 | n <- [1..1000]] & sum & (*6)
3.1406380562059946
Postfix function application, for conveniently applying attributes.
Unlike ($), (#) has a high precedence (8), so d
# foo # bar can be combined with other things using operators
like (|||) or (<>) without needing
parentheses.