Optimised day 19
[advent-of-code-22.git] / advent04 / Main.hs
index 456b157c6af47a8eda8d32d7b6bbace22c1b2540..537d7c6754a8c0a4c5fc839d4c331735030f8f38 100644 (file)
@@ -1,6 +1,6 @@
 -- Writeup at https://work.njae.me.uk/2022/12/04/advent-of-code-2022-day-4/
 
-import System.Environment
+import AoC
 import Data.Text (Text)
 import qualified Data.Text.IO as TIO
 import Data.Attoparsec.Text hiding (Result)
@@ -17,16 +17,6 @@ main =
       print $ part1 pairs
       print $ part2 pairs
 
-getDataFileName :: IO String
-getDataFileName =
-  do args <- getArgs
-     progName <- getProgName
-     let baseDataName =  if null args
-                         then progName
-                         else head args 
-     let dataFileName = "data/" ++ baseDataName ++ ".txt"
-     return dataFileName
-
 part1 :: [Pair] -> Int
 part1 = length . (filter hasContainment)
 
@@ -40,13 +30,14 @@ hasContainment (assignment1, assignment2) =
 disjoint (assignment1, assignment2) = 
   (assignment1 `before` assignment2) || (assignment2 `before` assignment1)
 
-overlaps pair = not $ disjoint pair
+overlaps = not . disjoint
 
 contains, before :: Assignment -> Assignment -> Bool
 contains (Assignment lower1 upper1) (Assignment lower2 upper2) =
   (lower1 <= lower2) && (upper1 >= upper2)
 
-before (Assignment _lower1 upper1) (Assignment lower2 _upper2) = (upper1 < lower2) 
+before (Assignment _lower1 upper1) (Assignment lower2 _upper2) = 
+  (upper1 < lower2) 
 
 -- Parse the input file