Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell'中的选择运算符;解析库_Haskell_Text Parsing_Parsec - Fatal编程技术网

Haskell'中的选择运算符;解析库

Haskell'中的选择运算符;解析库,haskell,text-parsing,parsec,Haskell,Text Parsing,Parsec,Parsec文档中介绍了以下关于 这个组合器实现选择。解析器pq首先应用p。 如果成功,则返回p的值。如果p在没有 使用任何输入,将尝试解析器q。这个组合子是定义的 等于MonadPlus类的mplus成员和 (Control.Applicative.)Control.Applicative.Alternative的成员 如何实现的回溯版本?当p消耗任何输入时,它会回溯,例如q可以再次应用于完整输入 要启用回溯,您只需使用,例如试试pq 但是,请注意,过度使用try可能会损害解析器的性能。考虑你

Parsec
文档中介绍了以下关于

这个组合器实现选择。解析器pq首先应用p。 如果成功,则返回p的值。如果p在没有 使用任何输入,将尝试解析器q。这个组合子是定义的 等于MonadPlus类的mplus成员和 (Control.Applicative.)Control.Applicative.Alternative的成员


如何实现
的回溯版本?当
p
消耗任何输入时,它会回溯,例如
q
可以再次应用于完整输入

要启用回溯,您只需使用,例如
试试pq

但是,请注意,过度使用
try
可能会损害解析器的性能。考虑你的语法,而不是在可能的地方消除常见的前缀。