C. Okasaki and A. Gill, “Fast mergeable integer maps,” in ACM SIGPLAN Workshop on ML, pp. 77–86, September 1998.



Finite maps are ubiquitous in many applications, but perhaps nowhere more so than in compilers and other language processors. In these applications, three operations on finite maps dominate all others: looking up the value associated with a key, inserting a new binding, and merging two finite maps. Most implementations of finite maps in functional languages are based on balanced binary search trees, which perform well on the first two, but poorly on the third. We describe an implementation of finite maps with integer keys that performs well in practice on all three operations. This data structure is not new-indeed, it is thirty years old this year-but it deserves to be more widely known.


  author = {Chris Okasaki and Andy Gill},
  title = {Fast mergeable integer maps},
  pages = {77--86},
  booktitle = {ACM SIGPLAN Workshop on ML},
  year = {1998},
  month = {September},