This is hopefully something worth sharing about Haskell. The $ operator.
simpleHTTP $ buildRequest req_text simpleHTTP ( buildRequest req_text )
It is an application operator, it takes a function and an argument, and ... applies the function to the argument. It's purpose is to save typing parentheses. It is all about operator precedence.
head . words $ config_file_contents ( head . words ) config_file_contents
Application, f a (f applies to a), binds stronger than any operator. If it was an operator, think about multiplication operator which people often omit, it would have precedence set to 10. $ has precedence set to 0, which is the lowest value of precedence possible.
The . is my another favourite. (f . g) a == f (g a) it set to 9, and therefore binds almost as strong as application.
listActions :: String -> [Action] listActions = filter notDone . map actionFromMap . parseJSON

1 comments:
Great. Finally I found clear definition of $. Thanks a lot.
Post a Comment