Bulat Ziganshin wrote:
Hello Jules,

Wednesday, August 27, 2008, 7:21:46 PM, you wrote:

given these constraints, it should be just a 10-20 lines of code, and provide 
much better efficiency than any tree/trie implementations

Prove it.

To get "much better efficient" than a trie, the hash function has to be
so fast that it is faster than following (log n) pointers

afaiu, trie search follows n pointers

No.

"n" is the number of strings in my data set (dictionary).

If I have "n" strings the average string length is asymptotically, in some sense, "log n". Of course for particular data sets it's may be more .

But "log n" is the length of the shortest unique coding, it's also the number of characters you typically need to traverse before you have reached a unique prefix, at which point your trie can short-circuit.

I appreciate that I didn't define my terminology ;) You might have a different "n".

I repeat my challenge "Prove it". I will be interested to see how much a good immutable hash outperforms Data.Map.

I would then also be interested to see how much it outperforms a decent Data.Map (such as your own AVL one) and a decent trie.

Jules

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to