Next to the “
.” operator there is another function-oriented operator that you’ll see often in Haskell code. This is the function application operator and it’s defined like this:
f $ x = f x
Weird right? Why does Haskell have this?
In Haskell, normal function application has a higher precedence than any other operator and it’s left-associative:
f g h j x == (((f g) h) j) x
$” has the lowest precedence of all operators and it’s right-associative:
f $ g $ h $ j $ x == f (g (h (j x)))
$” can make Haskell code more readable as an alternative to using parentheses. It has other uses too, more on that later.
— Using the Dropbox API from Haskell
— by Rian on January 02, 2012
2012.05.31 Thursday ACHK