Bringing the IntMap API up to par with the Map API

Johan Tibell johan.tibell at gmail.com
Fri Aug 6 09:59:11 EDT 2010


There are a few functions on Maps that could be implemented on IntMaps but
aren't:

  - deleteAt
  - elemAt
  - updateAt
  - findIndex
  - lookupIndex

The above 5 functions can be efficiently implemented on Maps in O(log n)
time, as the size of the subtrees are known, but not not on IntMaps. We
could still provide O(n) versions for IntMap. What's the use case for
indexed lookup in maps? I've never seen it in other languages.

- foldlWithKey
- foldrWithKey
- insertWith'
- insertWithKey'
- mapKeys
- mapKeysMonotonic
- mapKeysWith
- toDescList

I believe these should these should be straightforward to implement.

I suggest we add these functions to IntMap so one doesn't it's a "no
brainer" to switch from Maps to IntMaps for int keys.

Are there any other functions that should be added to both APIs e.g. strict
updateWith functions?

Cheers,
Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/libraries/attachments/20100806/3071bee1/attachment.html


More information about the Libraries mailing list