Improve item combination algorithm
This commit is contained in:
@@ -32,3 +32,11 @@ multiLookupTrie xs t@(Trie my ch)
|
||||
case M.lookup z ch of
|
||||
Nothing -> multiLookupTrie zs t
|
||||
Just t' -> map (_1 %~ (z:)) (multiLookupTrie zs t') ++ multiLookupTrie zs t
|
||||
|
||||
multiLookupTrieI :: Ord a => [(a,c)] -> Trie a b -> [([c],b)]
|
||||
multiLookupTrieI xs t@(Trie my ch)
|
||||
| null xs || null ch = maybe [] (\y -> [([],y)]) my
|
||||
| otherwise = let ((z1,z2):zs) = xs in
|
||||
case M.lookup z1 ch of
|
||||
Nothing -> multiLookupTrieI zs t
|
||||
Just t' -> map (_1 %~ (z2:)) (multiLookupTrieI zs t') ++ multiLookupTrieI zs t
|
||||
|
||||
Reference in New Issue
Block a user