1 import Data.List (foldl')
5 record_text <- readFile "data/02-rainfall.txt"
6 let records = readRecords record_text
11 readRecords :: String -> [Int]
12 readRecords = takeWhile (< 9999) . map read . lines
18 part2 records = round $ ((fromIntegral $ sum records) :: Double)
19 / (fromIntegral $ length records)
22 -- Doing part 2 as a fold, so only traverse the list once
23 part2a :: [Int] -> Int
24 part2a records = round $ ((fromIntegral sumR) :: Double) / (fromIntegral count)
26 (sumR, count) = foldl' (\(s, n) r -> (s+r, n+1)) (0, 0) records