aboutsummaryrefslogtreecommitdiff
path: root/challenge-263/asherbhs/haskell/ch-2.hs
blob: e279647be23d238cd3940bb8378713ca612fabe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import qualified Data.Map as Map

mergeItems :: [[Int]] -> [[Int]] -> [[Int]]
mergeItems items1 items2
    = map (\(k, v) -> [k, v])
    $ Map.toList
    $ Map.fromListWith (+)
    $ map (\[k, v] -> (k, v))
    $ items1 ++ items2

main :: IO ()
main = do
    print $ mergeItems
        [[1, 1], [2, 1], [3, 2]]
        [[2, 2], [1, 3]]
    print $ mergeItems
        [[1, 2], [2, 3], [1, 3], [3, 2]]
        [[3, 1], [1, 3]]
    print $ mergeItems
        [[1, 1], [2, 2], [3, 3]]
        [[2, 3], [2, 4]]