Fixing overlong lines
authorNeil Smith <neil.git@njae.me.uk>
Sun, 20 Dec 2020 16:59:05 +0000 (16:59 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Sun, 20 Dec 2020 16:59:05 +0000 (16:59 +0000)
advent11/src/advent11.hs
advent11/src/advent11naive.hs

index b56dc3df12a75893d6dd9db4a188a8ad23aab8fd..6fdfd6262c2c4f8414551b63d0f22a3496a9a558 100644 (file)
@@ -85,7 +85,8 @@ neighbourhood seats here = S.intersection (M.keysSet seats) (neighbours here)
 allNeighbourhoods :: Seats -> Neighbourhood
 allNeighbourhoods seats = M.mapWithKey (\h _ -> neighbourhood seats h) seats
 
-occupiedNeighbours seats nbrs here = M.filter (== Occupied) $ M.restrictKeys seats (nbrs!here)
+occupiedNeighbours seats nbrs here = M.filter (== Occupied) 
+  $ M.restrictKeys seats (nbrs!here)
 
 
 onSightLine :: Position -> Direction -> Position -> Bool
@@ -106,15 +107,12 @@ closestInDirection seats here direction = take 1 sortedSeats
         sortedSeats = sortOn (manhattan here) seatsInDirection 
 
 closestInSight :: Seats -> Position -> (S.Set Position)
-closestInSight seats here = S.fromList $ concatMap (closestInDirection seats here) [d | d <- [Up .. UpLeft]]
+closestInSight seats here = S.fromList 
+  $ concatMap (closestInDirection seats here) [d | d <- [Up .. UpLeft]]
 
 allSightNeighbourhoods :: Seats -> Neighbourhood
 allSightNeighbourhoods seats = M.mapWithKey (\h _ -> closestInSight seats h) seats
 
--- occupiedInSight :: Seats -> Position -> Seats
--- occupiedInSight seats here = M.filter (== Occupied) $ M.restrictKeys seats $ closestInSight seats here
-
-
 
 readGrid :: String -> (Seats, Position)
 readGrid input = (seats, (maxR, maxC))
index ac6d260f1ba2f2532bc5ca34334e3767f23443c5..4c55edf0cadb73414259ecbcf4a1cd4e624921d1 100644 (file)
@@ -56,7 +56,9 @@ ruleB seats here thisSeat
   where nOccs = M.size $ occupiedInSight seats here
 
 
-neighbours (r, c) = S.delete (r, c) $ S.fromList [(r + dr, c + dc) | dr <- [-1, 0, 1], dc <- [-1, 0, 1]]
+neighbours (r, c) = S.delete (r, c) 
+  $ S.fromList [ (r + dr, c + dc) 
+               | dr <- [-1, 0, 1], dc <- [-1, 0, 1]]
 
 neighbourhood seats here = M.restrictKeys seats (neighbours here)
 occupiedNeighbours seats here = M.filter (== Occupied) $ neighbourhood seats here
@@ -75,15 +77,18 @@ onSightLine (r0, c0) UpRight   (r, c) = ((r - r0) < 0) && ((r - r0) == (c0 - c))
 manhattan (r1, c1) (r2, c2) = abs (r1 - r2) + abs (c1 - c2)
 
 closestInDirection seats here direction = take 1 sortedSeats
-  -- where seatsInDirection = M.keys $ M.filterWithKey (\o _ -> onSightLine here direction o) seats
   where seatsInDirection = filter (onSightLine here direction) $ M.keys seats
         sortedSeats = sortOn (manhattan here) seatsInDirection 
 
 closestInSight :: Seats -> Position -> (S.Set Position)
-closestInSight seats here = S.fromList $ concatMap (closestInDirection seats here) [d | d <- [Up .. UpLeft]]
+closestInSight seats here = 
+  S.fromList $ concatMap (closestInDirection seats here) 
+                         [d | d <- [Up .. UpLeft]]
 
 occupiedInSight :: Seats -> Position -> Seats
-occupiedInSight seats here = M.filter (== Occupied) $ M.restrictKeys seats $ closestInSight seats here
+occupiedInSight seats here = M.filter (== Occupied) 
+  $ M.restrictKeys seats 
+  $ closestInSight seats here
 
 
 readGrid :: String -> (Seats, Position)