neil-0.0: src/Paper/Util/CmdNumber.hs
module Paper.Util.CmdNumber(cmdNumber) where
import Data.Char
import Data.Ix
import Paper.Util.String
cmdNumber :: [String] -> Int -> Bool
cmdNumber args | null nums = \n -> True
| otherwise = \n -> any (`inRange` n) nums
where
nums :: [(Int,Int)]
nums = map f $ filter (isDigit . head) args
f x = (read a
,case b of {[] -> read a; ".." -> maxBound; _ -> read $ drop 2 b})
where (a,b) = breakStr ".." x