26 lines
621 B
Haskell
26 lines
621 B
Haskell
module Dodge.Combine.Trie
|
|
( combinationsTrie
|
|
) where
|
|
|
|
import Data.Bifunctor
|
|
import Data.List (sort)
|
|
import Dodge.Combine.Combinations
|
|
import Dodge.Data.Item
|
|
import SimpleTrie
|
|
import Data.Foldable
|
|
|
|
--flatCombinationsTrie :: Trie ItemType Item
|
|
--{-# INLINE flatCombinationsTrie #-}
|
|
--flatCombinationsTrie = foldl'
|
|
-- (flip $ uncurry insertInTrie . first sort)
|
|
-- emptyTrie
|
|
-- flatItemCombinations
|
|
|
|
combinationsTrie :: Trie (ItAmount, ItemType) Item
|
|
{-# INLINE combinationsTrie #-}
|
|
combinationsTrie =
|
|
foldl'
|
|
(flip $ uncurry insertInTrie . first sort)
|
|
emptyTrie
|
|
itemCombinations
|