From 6fb7a8489b795526ed89d1213fb57eb13c689311 Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Sun, 17 Dec 2023 17:35:01 +0530 Subject: [PATCH] oops forgot this Signed-off-by: Amneesh Singh --- Lib.hs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Lib.hs diff --git a/Lib.hs b/Lib.hs new file mode 100644 index 0000000..61d97fa --- /dev/null +++ b/Lib.hs @@ -0,0 +1,25 @@ +module Lib (readFile', split, count, tRead) where + +import Data.ByteString qualified as B (readFile) +import Data.Text (Text) +import Data.Text.Encoding qualified as T (decodeUtf8) +import Data.Text.Read qualified as TR + +-- IO -- +readFile' :: FilePath -> IO Text +readFile' f = T.decodeUtf8 <$> B.readFile f + +-- Data.Text -- +tRead :: Text -> Int +tRead = (\(Right (n, _)) -> n) . TR.signed TR.decimal + +-- Utility -- +split :: (Eq a) => a -> [a] -> [[a]] +split delimiter list = + let (before, after) = break (== delimiter) list + in before : case after of + [] -> [] + (_ : xs) -> split delimiter xs + +count :: (Eq a) => [a] -> a -> Int +count xs x = length $ filter (x ==) xs