如何使用parsec解析Integer

Joa*_*ner 5 haskell parsec

我期待找到一个功能

integer :: Stream s m Char => ParsecT s u m Integer
Run Code Online (Sandbox Code Playgroud)

或者甚至是

natural :: Stream s m Char => ParsecT s u m Integer
Run Code Online (Sandbox Code Playgroud)

在标准库中,但我没有找到一个.

将纯自然数直接解析为Integer?的标准方法是什么?

Joa*_*ner 10

以下是我经常使用的表达方式

read <$> many1 digit
Run Code Online (Sandbox Code Playgroud)

可以有类型Stream s m Char => ParsecT s u m Integer(或简单Parser Integer).

我不喜欢使用partial函数read,但是当解析器成功时,我知道它read会成功,并且它有点可读.

  • 为了清楚起见,您可以包含类型签名吗? (2认同)