
On Fri, Nov 19, 2010 at 08:39:44PM +0100, Tim Baumgartner wrote:
Hi Haskellers,
this was my first post and I'm thankful and really impressed how many qualified answers I got. I've been learning Haskell only for a short time but I'm really fascinated how mathematical and expressive a programming language can be (I usually code Java). Recently I read a blog post, with a function
map (length &&& head) . group
that was much shorter and more elegant than the corresponding Python code. That was the main reason for me to try to write my own code in a single line without any lambda expressions.
Indeed! Writing code without lambda expressions or mentioning parameters is called "point-free style" (since parameters are sometimes referred to in the mathematical literature as "points"). For example, foo y = bar (baz (frob y)) can be rewritten as foo = bar . baz . frob which is (in most people's opinion) much nicer. Lambdabot (in the #haskell IRC channel on freenode.org) has a @pl command for performing such point-free simplifications. Point-free style should be taken in moderation, since it can be taken to unreadably esoteric extremes, but you are not in danger yet of crossing that line. =) -Brent