From 257e929dd2c2e8a08ed3094aaa8db76f9a89863a Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Fri, 9 Dec 2022 18:56:29 +0530 Subject: [PATCH] day 6: rewrite use Data.Text Signed-off-by: Amneesh Singh --- day6.hs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/day6.hs b/day6.hs index 0a8442c..74c33ca 100644 --- a/day6.hs +++ b/day6.hs @@ -1,16 +1,21 @@ +{-# LANGUAGE OverloadedStrings #-} + import Data.List (nub) +import Lib (readFile') +import Data.Text (Text) +import qualified Data.Text as T main :: IO () main = do - input <- readFile "day6.in" + input <- readFile' "day6.in" putStr "Q1: " print $ parse 4 input putStr "Q2: " print $ parse 14 input -group :: Int -> [Char] -> [[Char]] -group _ [] = [] -group n xs = take n xs : group n (tail xs) +group :: Int -> Text -> [Text] +group _ "" = [] +group n xs = T.take n xs : group n (T.tail xs) -parse :: Int -> String -> Int -parse n = (+ n) . length . takeWhile ((< n) . length) . map nub . group n +parse :: Int -> Text -> Int +parse n = (+ n) . length . takeWhile ((< n) . length) . map (nub . T.unpack) . group n