#4278: Proposal: Add strict versions of foldlWithKey and insertLookupWithKey to
Data.Map
---------------------------------+------------------------------------------
    Reporter:  tibbe             |       Owner:                         
        Type:  proposal          |      Status:  new                    
    Priority:  normal            |   Component:  libraries (other)      
     Version:  6.12.3            |    Keywords:                         
    Testcase:                    |   Blockedby:  4277                   
          Os:  Unknown/Multiple  |    Blocking:                         
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
---------------------------------+------------------------------------------
 This proposal depends on #4277.

 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.

 Note that the attached patch includes the dependent patches in the above
 linked ticket.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4278>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to