
Hi, Dnia 2013-02-12, wto o godzinie 22:09 +0100, Martin Drautzburg pisze:
On Friday, 1. February 2013 23:02:39 Ertugrul Söylemez wrote:
(f . g) x = f (g x)
so (f . g) x = f $ g x
right?
That looks like the two are pretty interchangeable. When would I prefer one over the other?
($) has lower precedence (it was introduced for that reason I belive). Prelude> :info ($) ($) :: (a -> b) -> a -> b -- Defined in GHC.Base infixr 0 $ Please take a look at: http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.6.0.1/Prelude.h...
From the docs:
"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..." Emanuel