From 13ecd8bad7249728a5e8a21cd1d252b880ddf746 Mon Sep 17 00:00:00 2001 From: shu Date: Thu, 10 Dec 2020 09:38:15 +0100 Subject: [PATCH] Day 10: Make it less incomprehensible? I hope, at least Lambdas are a bit easier to read I think --- 2020/day10/day10.hs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/2020/day10/day10.hs b/2020/day10/day10.hs index f78f2cd..a31aaaf 100644 --- a/2020/day10/day10.hs +++ b/2020/day10/day10.hs @@ -9,11 +9,9 @@ main = do (product . map (arrangements . sum) . filter (elem 1) . group . jolts) input arrangements :: Int -> Int -arrangements n = - length $ - filter (== n) $ map sum $ nub $ map (filter (/= 0)) $ replicateM n [0 .. 3] +arrangements = + (\x -> length . filter (== x)) <*> + (map sum . nub . map (filter (/= 0)) . flip replicateM [0 .. 3]) jolts :: [Int] -> [Int] -jolts = - ap (zipWith subtract) tail . - ap (++) (flip (:) [] . (+ 3) . last) . (:) 0 . sort +jolts = ap (zipWith subtract) tail . (\x -> 0 : x ++ [last x + 3]) . sort