Add remaining haskell book exercises
This commit is contained in:
24
Haskell-book/24/LearnParsers/app/Main.hs
Normal file
24
Haskell-book/24/LearnParsers/app/Main.hs
Normal file
@@ -0,0 +1,24 @@
|
||||
module Main where
|
||||
|
||||
import Control.Applicative
|
||||
import LearnParsers
|
||||
import Text.Fractions
|
||||
import Text.Trifecta
|
||||
import Text.Parser.Combinators
|
||||
|
||||
unitOfSuccess :: (TokenParsing m, Monad m) => m Integer
|
||||
unitOfSuccess = do
|
||||
number <- integer
|
||||
_ <- eof
|
||||
return number
|
||||
|
||||
type FractionOrNumber = Either Rational Integer
|
||||
|
||||
parseFractionOrNumber :: Parser FractionOrNumber
|
||||
parseFractionOrNumber = skipMany (oneOf "\n")
|
||||
>> (Left <$> try virtuousFraction)
|
||||
<|> (Right <$> integer)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
print $ parseString unitOfSuccess mempty "123"
|
||||
Reference in New Issue
Block a user