From ad711dc91b1f916d27d3ce5cb286f991d3f4ec32 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 28 Jan 2022 17:20:55 +0200 Subject: Add floats, number conversions --- src/utils.hs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/utils.hs') diff --git a/src/utils.hs b/src/utils.hs index 33f3f6e..9ba2fa0 100644 --- a/src/utils.hs +++ b/src/utils.hs @@ -5,3 +5,26 @@ module Utils where ($>) = flip ($) infixr 6 $> + +countCond :: (a -> Bool) -> [a] -> Int +countCond cond list = filter cond list $> length + +occursTimes :: Eq a => a -> [a] -> Int +occursTimes needle = countCond (== needle) + +readMaybe :: (Read a) => String -> Maybe a +readMaybe s = case reads s of + [(x, "")] -> Just x + _ -> Nothing + +isFloatStr str = + let ir = readMaybe str :: Maybe Double + in case ir of + Just _ -> True + Nothing -> False + +isIntStr str = + let ir = readMaybe str :: Maybe Integer + in case ir of + Just _ -> True + Nothing -> False -- cgit v1.3