| 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.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to