[Haskell-cafe] about Haskell code written to be "too smart"

Miguel Mitrofanov miguelimo38 at yandex.ru
Tue Mar 24 15:29:55 EDT 2009

> | As an example, with the takeList function I posted.
> I looked at it, found nothing wrong with the original, and absolutely
> hated your "fixed" version. I might have written it like this,  
> instead:
> ~    buildPartitions xs ns = zipWith take ns . init . scanl (flip  
> drop)
> xs $ ns

Maybe it's just me, but I think that

takeList ns xs = evalState (mapM (State . splitAt) ns) xs

or even

takeList = evalState . map (State . splitAt)

would be much clearer than both versions.

More information about the Haskell-Cafe mailing list