2013-02-21 21:08:50 +00:00
|
|
|
Ideal Hash Array Mapped Tries: an Erlang functional datatype
|
|
|
|
|
2013-02-25 15:46:48 +00:00
|
|
|
"The Hash Array Mapped Trie (HAMT) is based on the simple notion of hashing
|
|
|
|
a key and storing the key in a trie based on this hash value. The AMT is
|
|
|
|
used to implement the required structure efficiently. The Array Mapped Trie
|
|
|
|
(AMT) is a versatile data structure and yields attractive alternative to
|
|
|
|
contemporary algo- rithms in many applications. Here I describe how it is
|
|
|
|
used to develop Hash Trees with near ideal characteristics that avoid the
|
|
|
|
traditional problem, setting the size of the initial root hash table or
|
|
|
|
incurring the high cost of dynamic resizing to achieve an acceptable
|
|
|
|
performance."
|
2013-02-21 21:08:50 +00:00
|
|
|
|
2013-02-25 15:46:48 +00:00
|
|
|
The quote above is from the paper "Ideal Hash Tries" by Phil Bagwell [2000]:
|
2013-02-21 21:08:50 +00:00
|
|
|
@ARTICLE{Bagwell01idealhash,
|
|
|
|
author = {Phil Bagwell},
|
|
|
|
title = {Ideal Hash Trees},
|
|
|
|
journal = {Es Grands Champs},
|
|
|
|
year = {2001},
|
|
|
|
volume = {1195}
|
|
|
|
}
|
|
|
|
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.6279
|
|
|
|
http://lampwww.epfl.ch/papers/idealhashtrees.pdf
|
|
|
|
http://en.wikipedia.org/wiki/Hash_array_mapped_trie
|
|
|
|
|
|
|
|
This is an experiment in functional datatypes in Erlang. At some point I'll
|
|
|
|
mature this into a persistent concurrent hash array mapped trie (ctrie).
|