Play with syntax

This commit is contained in:
2023-12-04 19:05:20 +01:00
parent e746e22b0b
commit 53cad097f8
15 changed files with 27 additions and 26 deletions

View File

@@ -25,4 +25,4 @@ parse = do done <- isEOF
else do line <- getLine
let card = parseCard line
otherCards <- parse
return (card: otherCards)
return $ card: otherCards

View File

@@ -6,7 +6,7 @@ import qualified Part2
main = do cards <- parse
let part1Res = sum (Part1.getAllPoints cards)
let part1Res = sum $ Part1.getAllPoints cards
print part1Res
let part2Res = sum (Part2.getNCopies cards)
let part2Res = sum $ Part2.getNCopies cards
print part2Res

View File

@@ -9,7 +9,7 @@ getNWinningNumbers winningNumbers (n: t) | n `elem` winningNumbers = 1 + getNWin
| otherwise = getNWinningNumbers winningNumbers t
getPoints :: Card -> Int
getPoints card = let nWinningNumbers = getNWinningNumbers (winningNumbers card) (numbers card)
getPoints card = let nWinningNumbers = getNWinningNumbers (winningNumbers card) $ numbers card
in if nWinningNumbers == 0
then 0
else 2 ^ (nWinningNumbers - 1)

View File

@@ -13,7 +13,7 @@ updateNCopies 0 card otherCards = otherCards
updateNCopies n card (c: t) = c {nCopies = nCopies card + nCopies c}: updateNCopies (n - 1) card t
updateCopies :: Card -> [Card] -> [Card]
updateCopies card otherCards = let nWinningNumbers = getNWinningNumbers (winningNumbers card) (numbers card)
updateCopies card otherCards = let nWinningNumbers = getNWinningNumbers (winningNumbers card) $ numbers card
in updateNCopies nWinningNumbers card otherCards
updateAllCopies :: [Card] -> [Card]
@@ -21,4 +21,4 @@ updateAllCopies [] = []
updateAllCopies (c: t) = c: updateAllCopies (updateCopies c t)
getNCopies :: [Card] -> [Int]
getNCopies cards = map nCopies (updateAllCopies cards)
getNCopies cards = map nCopies $ updateAllCopies cards