|
Data.THash | Portability | non-portable (requires STM) | Stability | experimental | Maintainer | Edward Kmett <ekmett@gmail.com> |
|
|
|
|
|
Description |
A simple STM based transactional linear hash table based on Witold 1980.
This wraps a Data.THash.THT in an simple container. It may be
more appropriate to use the underlying THT structure directly if you are
nesting these. The performance hit hasn't yet been measured.
|
|
Synopsis |
|
|
|
Documentation |
|
data THash k v |
A hash with keys of type k to values of type v
|
|
|
new :: (k -> Int) -> STM (THash k v) |
Build an empty hash table
|
|
newH :: Hashable k => STM (THash k v) |
Build an empty hash table using the default hash function for the key type.
|
|
fromList :: Eq k => (k -> Int) -> [(k, v)] -> STM (THash k v) |
Build a hash table from a list of (key,value) pairs
|
|
insert :: Eq k => THash k v -> k -> v -> STM Bool |
Insert a value into the hash table. If a value with the key is present
then nothing is changed and False is returned.
|
|
update :: Eq k => THash k v -> k -> v -> STM () |
Insert a value into the hash table, replacing any value with the same key that is present.
|
|
modify :: Eq k => THash k v -> k -> (Maybe v -> v) -> STM () |
Update a value in the hash table using the supplied function.
|
|
delete :: Eq k => THash k v -> k -> STM Bool |
Remove a value from the hash table. Returns True to indicate success.
|
|
lookup :: Eq k => THash k v -> k -> STM (Maybe v) |
Lookup a value in the hash table.
|
|
mapH :: ((k, v) -> r) -> THash k v -> STM [r] |
Map a function over all (key,value) functions in the hash table.
|
|
each :: THash k v -> STM [(k, v)] |
each = mapH id and returns all (key,value) pairs in the hash.
|
|
keys :: THash k v -> STM [k] |
each = mapH fst and returns all keys in the hash.
|
|
values :: THash k v -> STM [v] |
each = mapH snd and returns all values present in the hash.
|
|
hashInt :: Int -> Int |
Thomas Wang's 32 bit mix function; more effective than a prime modulus for
declustering a linear hash, but not good against an adversary, since its easily
reversed.
|
|
Produced by Haddock version 0.7 |