[Haskell-cafe] Re: Haskell version of Norvig's Python Spelling Corrector

Felipe Almeida Lessa felipe.lessa at gmail.com
Sun Apr 22 17:44:58 EDT 2007


On 4/22/07, Pete Kazmier <pete-expires-20070615 at kazmier.com> wrote:
> > Worse - and this is true for ByteStrings, too - String comparisons are
> > O(n), which means lookups in Sets and Maps are expensive.  A trie (i.e,
> > a search tree where each internal node corresponds to a word prefix, and
> > has one branch per letter in the alphabet) will give you lookup that
> > scales with word size (and possibly alphabet size).
>
> Right.  My first version was just a direct translation of Norvig's
> code with an emphasis on trying to keep the complexity and size of
> code to a minimum.

AFAIK, Python's dictionaries are implemented using hashtables, so
lookups with them are much faster than with M.Map String Int.  So
should a direct translation use a Data.HashTable (despite its unpure
interface)? But probably a trie should be better than both (just
gambling ;-).

Cheers,

-- 
Felipe.


More information about the Haskell-Cafe mailing list