[Haskell-cafe] Style

sievers at math2.nat.tu-bs.de sievers at math2.nat.tu-bs.de
Fri Aug 24 09:50:40 EDT 2007

Arie Groeneveld wrote:

> tm = sum . takeWhile(>0) . iterate f . f
>    where f = flip div 5

> Which one is the most elegant one generally speaking?

I like that tm only uses div.

> My personal choice is 'tm'.
> I like 'tm3' (a revised version of tm2) in terms of
> pointlessness and not having a 'where', but I think
> it's a bit contrived because of the 'flip'.

You can make tm whereless by noticing that you use because
you use the function twice in  iterate f . f, which is because
you don't want the initial value that iterate gives.
You can instead use tail on iterate's result, and use a section
to avoid flip:

tm = sum . takeWhile (>0) . tail . iterate (`div` 5)

(Hope that works, can't test now...)

All the best
Christian Sievers

More information about the Haskell-Cafe mailing list