[Haskell-cafe] Point-free style (Was: Things to avoid)

Matthew Roberts mattr at ics.mq.edu.au
Thu Feb 10 19:27:44 EST 2005


I have to agree (although I suspect few others will :))

matt

On 11/02/2005, at 1:23 AM, Jan-Willem Maessen wrote:

>
> On Feb 10, 2005, at 6:50 AM, Henning Thielemann wrote:
>> On Thu, 10 Feb 2005, [ISO-8859-1] Thomas Jäger wrote:
>>> Altogether, the spirit of the page seems to be "use as little
>>> syntactic sugar as possible" which maybe appropriate if it is aimed 
>>> at
>>> newbies, who often overuse syntactic sugar (do-notation).
>>
>> This overuse is what I observed and what I like to reduce. There are 
>> many
>> people advocating Haskell just because of the sugar, which let 
>> interested
>> people fail to see what's essential for Haskell. When someone says to 
>> me
>> that there is a new language which I should know of because it 
>> supports
>> definition of infix operators and list comprehension, I shake my head 
>> and
>> wonder why he don't simply stick to Perl, Python, C++ or whatever.
>
> If you're trying to avoid obscurity, why advocate point-free style?
>
> I ask this question to be deliberately provocative; I'm not trying to 
> single you out in particular.  So, to everybody: What's so great about 
> point-free style?
>
> Is it really clear or obvious what
>
> > map . (+)
>
> means?  Contrast this with
>
> > \n -> map (+n)
>
> or
>
> > \n xs -> map (+n) xs
>
> I submit that, while it is possible to develop a reading knowledge of 
> point-free style, non-trivial use of point-free 
> computations---compositions of functions with arity greater than 1, as 
> above, compositions of sections of composition or application, arrow 
> notation without the sugar, and so forth---will always be more 
> difficult to read and understand than the direct version.  I submit 
> that this is true even if one is familiar with point-free programming 
> and skilled in its use.
> Even something as simple as eta-reduction (as in the second and third 
> functions above) can seriously obscure the meaning of program code by 
> concealing the natural arity of a function.
>
> -Jan-Willem Maessen
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



More information about the Haskell-Cafe mailing list