:: (a -> b) -> a -> b package:base-compat
Strict (call-by-value) application operator. It takes a function and
an argument, evaluates the argument to weak head normal form (WHNF),
then calls the function with that value.
Application operator. This operator is redundant, since ordinary
application
(f x) means the same as
(f $ x).
However,
$ has low, right-associative binding precedence, so it
sometimes allows parentheses to be omitted; for example:
f $ g $ h x = f (g (h x))
It is also useful in higher-order situations, such as
map
($ 0) xs, or
zipWith ($) fs xs.
Note that
($) is representation-polymorphic in its
result type, so that
foo $ True where
foo :: Bool
-> Int# is well-typed.