diff options
Diffstat (limited to 'src/utils.hs')
| -rw-r--r-- | src/utils.hs | 23 |
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 |
