$ package:ihaskell

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.
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.
Replace all locations in the input with the same value. The default definition is fmap . const, but this may be overridden with a more efficient version.

Examples

Perform a computation with Maybe and replace the result with a constant value if it is Just:
>>> 'a' <$ Just 2
Just 'a'

>>> 'a' <$ Nothing
Nothing
Strict version of <$>.
An infix synonym for fmap. The name of this operator is an allusion to $. Note the similarities between their types:
($)  ::              (a -> b) ->   a ->   b
(<$>) :: Functor f => (a -> b) -> f a -> f b
Whereas $ is function application, <$> is function application lifted over a Functor.

Examples

Convert from a Maybe Int to a Maybe String using show:
>>> show <$> Nothing
Nothing

>>> show <$> Just 3
Just "3"
Convert from an Either Int Int to an Either Int String using show:
>>> show <$> Left 17
Left 17

>>> show <$> Right 17
Right "17"
Double each element of a list:
>>> (*2) <$> [1,2,3]
[2,4,6]
Apply even to the second element of a pair:
>>> even <$> (2,2)
(2,True)