diff --git a/4/solution.nix b/4/solution.nix index d354647..661884c 100644 --- a/4/solution.nix +++ b/4/solution.nix @@ -3,12 +3,13 @@ with import ../util.nix; let # read input input = readFile ./input; - pairs = let - readRange = s: splitPair (a: b: [ (toInt a) (toInt b) ]) (splitString "-" s); - readPair = a: b: [ (readRange a) (readRange b) ]; - in map - (line: splitPair readPair (splitString "," line)) - (splitString "\n" input); + pairs = + let + readRange = s: splitPair (a: b: [ (toInt a) (toInt b) ]) (splitString "-" s); + readPair = a: b: [ (readRange a) (readRange b) ]; + in map + (line: splitPair readPair (splitString "," line)) + (splitString "\n" input); # overlap functions partialOverlap = a1: a2: b1: b2: @@ -18,7 +19,7 @@ let # calc overlaps hasOverlap = overlapFunc: a: b: - splitPair (splitPair overlapFunc a) b || splitPair (splitPair overlapFunc b) a; + splitPair (splitPair overlapFunc a) b || splitPair (splitPair overlapFunc b) a; overlaps = overlapFunc: map boolToInt (map (splitPair (hasOverlap overlapFunc)) pairs); in { part1 = sum (overlaps completeOverlap);