
Bryan Richter writes:
On Tue, Feb 09, 2016 at 02:27:44PM +0300, Kosyrev Serge wrote:
Michael Orlitzky
writes: Most uses of "$" are for stupid things like "sin $ 1 + 2" where parentheses would be much more clear.
"$" simplifies visual perception through two factors:
1. we are relieved from counting parentheses 2. it serves as a cue to treat the entire remaining part until ")" as part of the same expression
Case in point (only slightly contrived) -- which one is easier to visually parse to you:
foo (thInt $ fromIntegral $ c2hsValueInt cexp) (thInt $ fromIntegral $ c2hsValueInt cexp)
foo (thInt (fromIntegral (c2hsValueInt cexp))) (thInt (fromIntegral (c2hsValueInt cexp)))
My readability problem with this statement is line length. How about:
foo (thInt (fromIntegral (c2hsValueInt cexp))) (thInt (fromIntegral (c2hsValueInt cexp)))
I clearly made a mistake of duplicating a real expression.. should have picked two different expressions for an example. The point I have tried to convey was that: - the ))) ( patterns are hard to parse visually - the $ helps to alleviate that ..which is fairly orthogonal to common subexpression elimination or formatting. $ allows one to write more complex expressions -- precisely without resorting to diluting code with formatting. -- с уважениeм / respectfully, Косырев Сергей