Tidying
authorNeil Smith <NeilNjae@users.noreply.github.com>
Thu, 5 Dec 2024 15:23:04 +0000 (15:23 +0000)
committerNeil Smith <NeilNjae@users.noreply.github.com>
Thu, 5 Dec 2024 15:23:04 +0000 (15:23 +0000)
advent05/MainOrdering.hs

index 8f2f8e9ea7a87a12b298c43c694aa9887120a9d2..6ed5b47610898e9266008ee9177bda8478104ef2 100644 (file)
@@ -40,17 +40,11 @@ part2 rules books = sum $ fmap middlePage reorderedBooks
 -- a EQ b if there is no rule about the order of a and b  
 pageOrder :: Rules -> Page -> Page -> Ordering
 pageOrder rules a b
-  | isNothing pa && isNothing pb = EQ
-  | isNothing pa = LT
-  | isNothing pb = GT
   | S.member a rb = LT
   | S.member b ra = GT
   | otherwise = EQ
-  where pa = rules M.!? a
-        pb = rules M.!? b
-        ra = fromJust pa
-        rb = fromJust pb
-
+  where ra = M.findWithDefault S.empty a rules
+        rb = M.findWithDefault S.empty b rules
 
 middlePage :: [Page] -> Page
 middlePage b = b !! (length b `div` 2)