程序代做CS代考 Haskell – Expression example from chapter 13 of Programming in Haskell, – cscodehelp代写

— Expression example from chapter 13 of Programming in Haskell,
— , Cambridge University Press, 2016.

import Parsing

expr :: Parser Int
expr = do t <- term do symbol "+" e <- expr return (t + e) <|> return t

term :: Parser Int
term = do f <- factor do symbol "*" t <- term return (f * t) <|> return f

factor :: Parser Int
factor = do symbol “(”
e <- expr symbol ")" return e <|> natural

eval :: String -> Int
eval xs = case (parse expr xs) of
[(n,[])] -> n
[(_,out)] -> error (“Unused input ” ++ out)
[] -> error “Invalid input”

Leave a Reply

Your email address will not be published. Required fields are marked *