使用三連擊庫,我應該能夠解析不包含結尾字母整型字符串和返回解析的整數解析器解析整數返回整數>> EOF使用綁定
Prelude> parseString (yourFuncHere) mempty "123"
Success 123
Prelude> parseString (yourFuncHere) mempty "123abc"
Failure (interactive):1:4: error: expected: digit,
end of input
123abc<EOF>
我有之所以能做到這一點使用做記號像這樣:
x <- decimal
eof
return x
但我一直在翻譯這個綁定/ lambda表達式不成功。
這不守解析的數量,但在其他方面正確的:
decimal >> eof
我想我應該這樣開始
decimal >>= \x -> eof
,但在此之後,每次我都試過排列不起作用。如何返回解析的數字並使用綁定語法來檢查eof而不是?
您應該可以使用Applicative實例而不是Monad實例:'decimal <* eof'。 – amalloy