Proposal: Foldable typeclass: make foldl' and foldr' class methods
Johan Tibell
johan.tibell at gmail.com
Mon Jun 20 22:44:41 CEST 2011
On Mon, Jun 20, 2011 at 10:11 PM, Duncan Coutts
<duncan.coutts at googlemail.com> wrote:
> Mm, the '1' variants are obvious. The fold and foldMap are more
> interesting. I'd have to think harder about what their default
> definition would be, or what specialised implementations might look like
> (e.g. tree folds starting from the leaves and working towards the root).
> Are there any obvious use cases for strict monoid folds?
How about parallel folds? Here's something I'd like to support for HashMap:
parFold :: Monoid m => (v -> m) -> HashMap k v -> m
sumValues = parFold Sum
Another really nice property of monoid folds is that they get
call-site specialized automatically by GHC.
Johan
More information about the Libraries
mailing list