diff --git a/day7/main.hs b/day7/main.hs index 599403b..5318bbf 100755 --- a/day7/main.hs +++ b/day7/main.hs @@ -7,7 +7,9 @@ import Control.Applicative import Data.Attoparsec.Text (Parser, parseOnly) +import Data.Bool (bool) import Data.Map (Map) +import Data.Monoid (Sum(..)) import Data.MultiSet (MultiSet) import Data.Tree (Tree) import Text.Pretty.Simple @@ -102,7 +104,8 @@ solvePart1 color strs = do rules <- parseStrs strs let trees = map (\c -> mkSimpleTree c rules) (filter (/= color) $ M.keys rules) let containColor = map (elem color) trees - pure $ length $ filter (== True) containColor + pure $ getSum $ foldMap (Sum . bool 0 1) containColor + -- ^^ complicated exp for: pure $ length $ filter (== True) containColor main :: IO () main = do