Maybe it's just me, but I think composition chain is MUCH easier to read.
When readning, I'd probably transform the last version to the previous one by
hand, just to make it more comprehensible.
Sebastian Fischer wrote:
On Mar 10, 2010, at 8:47 AM, Ketil Malde wrote:
I think it is better style to avoid this kind of one-off named
values. I much prefer:
then "Golds "++show (gold s g)++...
For some reason, this is a style isse that doesn't get much attention
At the end of the Section on function composition in the tutorial "Learn
You a Haskell for Great Good" [1] there is a nice example demonstrating
that sometimes it may be preferable to introduce names for readability:
Quote:
In the section about maps and filters, we solved a problem of finding
the sum of all odd squares that are smaller than 10,000. Here's what the
solution looks like when put into a function.
oddSquareSum :: Integer
oddSquareSum = sum (takeWhile (<10000) (filter odd (map (^2) [1..])))
Being such a fan of function composition, I would have probably written
that like this:
oddSquareSum :: Integer
oddSquareSum = sum . takeWhile (<10000) . filter odd . map (^2) $ [1..]
However, if there was a chance of someone else reading that code, I
would have written it like this:
oddSquareSum :: Integer
oddSquareSum =
let oddSquares = filter odd $ map (^2) [1..]
belowLimit = takeWhile (<10000) oddSquares
in sum belowLimit
It wouldn't win any code golf competition, but someone reading the
function will probably find it easier to read than a composition chain.
End Quote.
[1]: http://learnyouahaskell.com/higher-order-functions#composition
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe