diff --git a/haskell/Pre.hs b/haskell/Pre.hs index f3c28d1..9442292 100644 --- a/haskell/Pre.hs +++ b/haskell/Pre.hs @@ -64,9 +64,9 @@ import Data.Foldable hiding (foldl1, foldr1, maximum, maximumBy, minimum, minimu import Data.Foldable1 import Data.Function import Data.Functor -import Data.List (sortOn, tails, transpose) +import Data.List (sortOn, transpose) import Data.List.Extra (dropEnd, enumerate, notNull, splitOn) -import Data.List.NonEmpty (NonEmpty ((:|)), nonEmpty, some1) +import Data.List.NonEmpty (NonEmpty ((:|)), nonEmpty, some1, tail, tails) import Data.Maybe import Data.Ord import Data.Sequence (Seq) diff --git a/haskell/Puzzles/Day8.hs b/haskell/Puzzles/Day8.hs index a4b0f05..44af7ad 100644 --- a/haskell/Puzzles/Day8.hs +++ b/haskell/Puzzles/Day8.hs @@ -8,6 +8,8 @@ import Data.Text.Lazy qualified as TL import Linear.Metric import Linear.V3 +import Prelude hiding (tail) + puzzle :: Puzzle puzzle = Puzzle @@ -40,7 +42,7 @@ puzzle = connectBoxes :: [V3 Int] -> [((V3 Int, V3 Int), DS.DisjointSet (V3 Int))] connectBoxes boxes = zip allPairs $ scanl (flip $ uncurry DS.union) (foldMap DS.singleton boxes) allPairs where - allPairs = sortOn (quadrance . uncurry (-)) $ filter (uncurry (/=)) $ allUnorderedPairs boxes + allPairs = sortOn (quadrance . uncurry (-)) $ allUnorderedPairs boxes allUnorderedPairs :: [a] -> [(a, a)] -allUnorderedPairs = concat . join (zipWith (flip $ map . (,)) . tails) +allUnorderedPairs = concat . join (zipWith (flip $ map . (,)) . tail . tails)