<div dir="ltr"><div>It is, I agree, not appropriate everywhere, but point-free code can in the right place be much more readable. Maps are a good example. Compare:</div><div><br></div><div>    map (f . g . h) xs</div><div><br></div><div>to</div><div><br></div><div>    map (\x -> f $ g $ h x) xs</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 26, 2016 at 10:17 PM, Rustom Mody <span dir="ltr"><<a href="mailto:rustompmody@gmail.com" target="_blank">rustompmody@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Fri, Feb 26, 2016 at 11:11 PM, Rein Henrichs <span dir="ltr"><<a href="mailto:rein.henrichs@gmail.com" target="_blank">rein.henrichs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Pointfree is good for reasoning about <b>composition</b>. It can often be more readable than pointful code when the focus of the function is on composition of other functions. For example, take this function from Bird's <i>Pearls of Functional Algorithm Design</i>:<div><br></div><div> boxes = map ungroup . ungroup . map cols . group . map group</div></div></blockquote><div><br></div></span><div>And better if you read it in the right (ie left to right order)<br><br><br></div><div>boxes  =  map group >>> group >>> map cols >> ungroup >>> map ungroup<br></div><div>(From Control.Arrow)<br><br></div><div>Even better if the 3-char clunky >>> is reduced to the 1-char ⋙<br>map group ⋙ group ⋙ map cols ⋙ ungroup ⋙ map ungroup<br></div><div>(>From Control.Arrow.Unicode)<br></div><div>[Those who find this unnatural/difficult/arcane/etc may like to check out Unix-pipes (or English :-) ]<br><br></div><div>Some wishful thinking in the same direction<br>(uses python but python is not really relevant)  :  <a href="http://blog.languager.org/2014/04/unicoded-python.html" target="_blank">http://blog.languager.org/2014/04/unicoded-python.html</a><br></div><div>Which to some extent I found works in Haskell : <a href="http://blog.languager.org/2014/05/unicode-in-haskell-source.html" target="_blank">http://blog.languager.org/2014/05/unicode-in-haskell-source.html</a><br></div><div>If only Haskell would go further!!<br></div></div>
</div></div>
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Jeffrey Benjamin Brown</div></div>
</div>