[Haskell-cafe] how to break foldl' ?

gary ng garyng2000 at yahoo.com
Fri Sep 30 11:02:20 EDT 2005

Once again, many thanks to all who taught me about
this small little problem. Don't even know there is
init/last and thought there is only head/tail.

But just for my curiosity, would the takeWhile still
store the intermediate result till my result is
reached ? If so, and my list is really very long(and I
need to go to 1/2 of its length), I would still use a
lot more memory than imperative method or even the
foldl one(where in both case, I just take one element)

--- Henning Thielemann <lemming at henning-thielemann.de>

> No problem:
>   last (takeWhile (<maxX) (scanl (+) 0 xs))
>     Convinced?
> The first sum which exceeds the limit could be
> computed with
>   head (dropWhile (<=maxX) (scanl (+) 0 xs))

Yahoo! Mail - PC Magazine Editors' Choice 2005 

More information about the Haskell-Cafe mailing list