[Haskell-cafe] Finding longest common prefixes in a list
Gwern Branwen
gwern0 at gmail.com
Fri Jan 20 23:44:14 CET 2012
On Fri, Jan 20, 2012 at 1:57 PM, Twan van Laarhoven <twanvl at gmail.com> wrote:
> Here is some example code (untested):
Well, you're right that it doesn't work. I tried to fix the crucial
function, 'atLeastThisManyDescendants', but it's missing something
because varying parts doesn't much affect the results when I try it
out on example input - it either returns everything or nothing, it
seems:
atLeastThisManyDescendants :: Int -> Trie a -> [CommonPrefix a]
atLeastThisManyDescendants minD trie@(Trie l d t')
| d < minD = []
| null forChildren = [Prefix [] trie]
| otherwise = forChildren
where
forChildren = [ Prefix (x:pfx) nms
| (x,t) <- Map.toList t'
, Prefix pfx nms <- atLeastThisManyDescendants l t ]
--
gwern
http://www.gwern.net
More information about the Haskell-Cafe
mailing list