<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">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><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">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">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>