summaryrefslogtreecommitdiffstats
path: root/src/utils.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.hs')
-rw-r--r--src/utils.hs23
1 files changed, 23 insertions, 0 deletions
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