On 28 Jan 2010, at 20:07, Steve Schafer wrote:

The data are currently in a large lookup table. To save space, I'd like
to convert that into a sort of hash function:

hash :: key -> value

My question is this: Is there any kind of generic approach that can make
use of the knowledge about the internal redundancy of the keys to come
up with an efficient function?

There are minimal perfect hash functions; there are some libraries mentioned here, though they are not in Haskell code:
  http://en.wikipedia.org/wiki/Perfect_hash_function

This is suitable when you do a lot of lookups with few key updates. An alternative might be Data.Map, where lookups have time complexity O(log n), n = size of map.

  Hans


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to