Safe Haskell | Safe-Infered |
---|
Simple hash tables, implemented as Map hash (Map key value)
.
To be Haskell98 compatible (no multi-param type classes), when constructing a new hash table, we have to support the function computing (or just fetching, if it is cached) the hash value. This function is then stored in the data type.
- data HashTable hash k v
- getHashValue :: HashTable hash k v -> k -> hash
- unHashTable :: HashTable hash k v -> Map hash (Map k v)
- empty :: (Ord hash, Ord k) => (k -> hash) -> HashTable hash k v
- singleton :: (Ord hash, Ord k) => (k -> hash) -> k -> v -> HashTable hash k v
- fromList :: (Ord hash, Ord k) => (k -> hash) -> [(k, v)] -> HashTable hash k v
- toList :: Ord k => HashTable hash k v -> [(k, v)]
- bag :: (Ord hash, Ord k) => (k -> hash) -> [k] -> HashTable hash k Int
- lookup :: (Ord hash, Ord k) => k -> HashTable hash k v -> Maybe v
- member :: (Ord hash, Ord k) => k -> HashTable hash k v -> Bool
- insert :: (Ord hash, Ord k) => k -> v -> HashTable hash k v -> HashTable hash k v
- insertWith :: (Ord hash, Ord k) => (a -> v) -> (a -> v -> v) -> k -> a -> HashTable hash k v -> HashTable hash k v