From 8279401e0b85ae707542ad5f919ecacb43b5f914 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Wed, 15 Dec 2021 19:41:19 +0100 Subject: uniq in Util --- 2021/12.hs | 5 ----- 2021/13.hs | 5 ----- 2021/Util.hs | 5 +++++ 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/2021/12.hs b/2021/12.hs index 03b2d77..ba902dd 100644 --- a/2021/12.hs +++ b/2021/12.hs @@ -12,11 +12,6 @@ import Input import Util -uniq :: Eq a => [a] -> [a] -uniq (x : y : xs) | x == y = uniq (y : xs) - | otherwise = x : uniq (y : xs) -uniq l = l - main :: IO () main = do inp <- getInput 12 diff --git a/2021/13.hs b/2021/13.hs index 8e6c664..26e7a6d 100644 --- a/2021/13.hs +++ b/2021/13.hs @@ -8,11 +8,6 @@ import Input import Util -uniq :: Eq a => [a] -> [a] -uniq (x : y : xs) | x == y = uniq (y : xs) - | otherwise = x : uniq (y : xs) -uniq l = l - generate :: A.Ix i => (i, i) -> (i -> a) -> A.Array i a generate bounds f = A.listArray bounds (map f (A.range bounds)) diff --git a/2021/Util.hs b/2021/Util.hs index f021a88..1553c4c 100644 --- a/2021/Util.hs +++ b/2021/Util.hs @@ -13,3 +13,8 @@ splitOn f (x:xs) | f x = [] <| splitOn f xs splits' :: [a] -> [(a, [a])] splits' l = zip l (zipWith (++) (inits l) (tail (tails l))) + +uniq :: Eq a => [a] -> [a] +uniq (x : y : xs) | x == y = uniq (y : xs) + | otherwise = x : uniq (y : xs) +uniq l = l -- cgit v1.2.3-54-g00ecf