diff options
author | Simon Hengel <sol@typeful.net> | 2012-09-22 18:55:47 +0200 |
---|---|---|
committer | Simon Hengel <sol@typeful.net> | 2012-10-01 11:30:51 +0200 |
commit | 762cc901a0d72ebdc770adaaf68c9fd4c3ca4d87 (patch) | |
tree | 20dea2d9ed7e54c75915f8f0121f473b3c4eb7c1 /examples/Hash.hs | |
parent | d40f783dae503a194c036f5c8272563fcca187a4 (diff) |
Remove old examples
Diffstat (limited to 'examples/Hash.hs')
-rw-r--r-- | examples/Hash.hs | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/examples/Hash.hs b/examples/Hash.hs deleted file mode 100644 index b399b129..00000000 --- a/examples/Hash.hs +++ /dev/null @@ -1,45 +0,0 @@ -{- | - Implementation of fixed-size hash tables, with a type - class for constructing hash values for structured types. --} -module Hash ( - -- * The @HashTable@ type - HashTable, - - -- ** Operations on @HashTable@s - new, insert, lookup, - - -- * The @Hash@ class - Hash(..), - ) where - -import Array - --- | A hash table with keys of type @key@ and values of type @val@. --- The type @key@ should be an instance of 'Eq'. -data HashTable key val = HashTable Int (Array Int [(key,val)]) - --- | Builds a new hash table with a given size -new :: (Eq key, Hash key) => Int -> IO (HashTable key val) - --- | Inserts a new element into the hash table -insert :: (Eq key, Hash key) => key -> val -> IO () - --- | Looks up a key in the hash table, returns @'Just' val@ if the key --- was found, or 'Nothing' otherwise. -lookup :: Hash key => key -> IO (Maybe val) - --- | A class of types which can be hashed. -class Hash a where - -- | hashes the value of type @a@ into an 'Int' - hash :: a -> Int - -instance Hash Int where - hash = id - -instance Hash Float where - hash = trunc - -instance (Hash a, Hash b) => Hash (a,b) where - hash (a,b) = hash a `xor` hash b - |