-- source: https://www.reddit.com/r/adventofcode/comments/7gsrc2/2017_day_1_solutions/dqlhkcj/ import Data.Char (digitToInt) solve n xs = sum $ zipWith (\a b -> if a == b then a else 0) xs (drop n $ cycle xs) solve1 xs = solve 1 (digitToInt <$> xs) solve2 xs = solve ((length xs) `div` 2) (digitToInt <$> xs)