module Part1 where import Commons getNWinningNumbers :: [Int] -> [Int] -> Int getNWinningNumbers _ [] = 0 getNWinningNumbers winningNumbers (n: t) | n `elem` winningNumbers = 1 + getNWinningNumbers winningNumbers t | otherwise = getNWinningNumbers winningNumbers t getPoints :: Card -> Int getPoints card = let nWinningNumbers = getNWinningNumbers (winningNumbers card) $ numbers card in if nWinningNumbers == 0 then 0 else 2 ^ (nWinningNumbers - 1) getAllPoints :: [Card] -> [Int] getAllPoints = map getPoints