Simplify code

This commit is contained in:
Anton Vakhrushev 2017-11-13 22:27:20 +03:00
parent 3600f18533
commit 07d25c7e44

View File

@ -44,9 +44,9 @@ parse s
} }
createFields :: String -> [Maybe Field] createFields :: String -> [Maybe Field]
createFields text = zipWith (curry f) parsers (words text) createFields text = zipWith f constraints (words text)
where where
f (parser, s) = parser s f constraint word = parseField word constraint
checkParts :: [Maybe Field] -> Bool checkParts :: [Maybe Field] -> Bool
checkParts xs checkParts xs
@ -55,28 +55,35 @@ checkParts xs
| otherwise = True | otherwise = True
parseFieldAdapter :: Constraint -> String -> Maybe Field parseFieldAdapter :: Constraint -> String -> Maybe Field
parseFieldAdapter c t = parseField t c parseFieldAdapter constraint text = parseField text constraint
parseMinute :: String -> Maybe Field constrainMinute :: Constraint
parseMinute = parseFieldAdapter (Constraint 0 59) constrainMinute = Constraint 0 59
parseHour :: String -> Maybe Field constrainHour :: Constraint
parseHour = parseFieldAdapter (Constraint 0 23) constrainHour = Constraint 0 23
parseDay :: String -> Maybe Field constrainDay :: Constraint
parseDay = parseFieldAdapter (Constraint 1 31) constrainDay = Constraint 1 31
parseMonth :: String -> Maybe Field constrainMonth :: Constraint
parseMonth = parseFieldAdapter (Constraint 1 12) constrainMonth = Constraint 1 12
parseWeek :: String -> Maybe Field constrainWeek :: Constraint
parseWeek = parseFieldAdapter (Constraint 1 7) constrainWeek = Constraint 1 7
parseYear :: String -> Maybe Field constrainYear :: Constraint
parseYear = parseFieldAdapter (Constraint 0 9999) constrainYear = Constraint 0 9999
parsers :: [String -> Maybe Field] constraints :: [Constraint]
parsers = [parseMinute, parseHour, parseDay, parseMonth, parseWeek, parseYear] constraints =
[ constrainMinute
, constrainHour
, constrainDay
, constrainMonth
, constrainWeek
, constrainYear
]
check :: Pattern -> DateTime -> Bool check :: Pattern -> DateTime -> Bool
check ptn date = all isRight pairs check ptn date = all isRight pairs