[Haskell-beginners] Could not get parser ready
Marcus Manning
iconsize at gmail.com
Sun Nov 5 17:51:57 UTC 2017
Hello,
I follow the instructions of script [1] in order to set up a parser
functionality. But I' get into problems at page 202 with the code:
p :: Parser (Char,Char)
p = do
x ← item
item
y ← item
return (x,y)
ghci and ghc throw errors:
Prelude> let p:: Parser (Char,Char); p = do {x <- item; item; y <- item;
return (x,y)}
<interactive>:10:65: error:
• Couldn't match type ‘[(Char, String)]’ with ‘Char’
Expected type: String -> [((Char, Char), String)]
Actual type: Parser ([(Char, String)], [(Char, String)])
• In a stmt of a 'do' block: return (x, y)
In the expression:
do x <- item
item
y <- item
return (x, y)
In an equation for ‘p’:
p = do x <- item
item
y <- item
....
Did the semantics of do expr changed?
[1]
https://userpages.uni-koblenz.de/~laemmel/paradigms1011/resources/pdf/haskell.pdf
Cheers,
iconfly.
More information about the Beginners
mailing list