<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The point I have tried to convey was that:<br>
<br>
  - the ))) ( patterns are hard to parse visually<br>
  - the $ helps to alleviate that<br>
<br>
..which is fairly orthogonal to common subexpression elimination or formatting.<br>
<br>
$ allows one to write more complex expressions -- precisely without<br>
resorting to diluting code with formatting.<br></blockquote><div><br></div><div>I agree, but '$' still needs to be used with a bit of care. For instance, given these choices:</div><div><br></div><div class="uyb8Gf"><div class="F3hlO"><div dir="ltr">> someFn $ someOtherFn $ more $ more $ val<br>> (someFn . someOtherFn . more . more $ val)<br>> someFn (someOtherFn (more (more val)))</div><div dir="ltr"><br></div><div dir="ltr"><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important">I like one not on the list:</p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important"><br></p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important">someFn . someOtherFn . more $ more val</p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important"><br></p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important">as it's simpler in that there are fewer things to parse than the other options. The middle option in the first three without the extra global '()'s is close, and might even be better in context once they are removed, but the<span style="line-height:17.92px"> last one makes me long for he old LISP super-parens, even though I thought and still think they were a bad idea.</span></p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important"><br></p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important">So my rule of thumb is one '$' for expression or sub-expression, using '.' instead of '$' prior to that to make the distinction between building a functional value and applying it stand out.</p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important"><br></p><p style="font-size:14px;line-height:17.92px;margin-top:0px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-bottom:0px!important"><br></p></div></div></div></div></div>