haskell: move oneCompleteResult to AoC module
This commit is contained in:
parent
8bb03a8dcd
commit
38cac26cb7
2 changed files with 7 additions and 5 deletions
|
@ -1,9 +1,16 @@
|
|||
module AoC where
|
||||
|
||||
import Text.ParserCombinators.ReadP
|
||||
|
||||
(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
|
||||
f .: g = (f .) . g
|
||||
infixl 8 .:
|
||||
|
||||
oneCompleteResult :: ReadP a -> String -> Maybe a
|
||||
oneCompleteResult p s = case readP_to_S (p <* eof) s of
|
||||
[(x, "")] -> Just x
|
||||
_ -> Nothing
|
||||
|
||||
runAoC :: (Show r1, Show r2) => (String -> i) -> (i -> r1) -> (i -> r2) -> IO ()
|
||||
runAoC inputTransform part1 part2 = do
|
||||
contents <- inputTransform <$> getContents
|
||||
|
|
|
@ -89,11 +89,6 @@ parseFieldNames = spaceSeparated parseFieldName
|
|||
parsePassport :: ReadP [Field]
|
||||
parsePassport = spaceSeparated parseField
|
||||
|
||||
oneCompleteResult :: ReadP a -> String -> Maybe a
|
||||
oneCompleteResult p s = case readP_to_S (p <* eof) s of
|
||||
[(x, "")] -> Just x
|
||||
_ -> Nothing
|
||||
|
||||
splitOnEmptyLines :: String -> [String]
|
||||
splitOnEmptyLines = map (intercalate " ") . filter (not . any null) . groupBy ((==) `on` null) . lines
|
||||
|
||||
|
|
Loading…
Reference in a new issue