Proposal: Add strict versions of foldlWithKey and insertLookupWithKey to Data.Map

Johan Tibell johan.tibell at gmail.com
Sun Aug 29 09:34:29 EDT 2010


http://hackage.haskell.org/trac/ghc/ticket/4278

Proposal: Add strict versions of foldlWithKey and insertLookupWithKey to
Data.Map

This proposal depends on #4277 [1].

The current Data.Map API lacks two important functions:

    * A strict left (pre-order) fold -- needed to e.g. sum all the values in
a map efficiently.

    * A strict insertLookupWithKey' -- needed to e.g. update an integer
counter and retrieve the previous value in a single traversal.

The benchmark we ran indicates that foldlWithKey' is 95% faster than its
lazy counter part.insertLookupWithKey' is only 6% faster, but the speedup is
highly dependent on how many times each element is update. Each element was
only updated once in our benchmark so real speedups should be larger.

The consideration period is 3 weeks.

1. http://hackage.haskell.org/trac/ghc/ticket/4277
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/libraries/attachments/20100829/d7214014/attachment.html


More information about the Libraries mailing list