使用 trifecta 库,我应该解析一个不包含尾随字母的整数字符串并返回解析后的整数:
Prelude> parseString (yourFuncHere) mempty "123"
Success 123
Prelude> parseString (yourFuncHere) mempty "123abc"
Failure (interactive):1:4: error: expected: digit,
end of input
123abc<EOF>
我已经能够使用 do 符号来做到这一点,如下所示:
x <- decimal
eof
return x
但我未能成功将其转换为绑定/lambdas。
这不会保留解析的数字,但在其他方面是正确的:
decimal >> eof
我想我应该这样开始
decimal >>= \x -> eof
但在此之后,我尝试过的每一个排列都不起作用。如何返回解析的数字并使用绑定语法检查 eof 而不是 do?