80得票1回答
在Haskell中,attoparsec或parsec是什么?

我需要解析一些文件并将它们转换为预定义的数据类型。 Haskell 提供了两个用于这个任务的包: attoparsec parsec 这两个包有什么区别?哪一个更适合根据某些规则解析文本文件?

75得票5回答
适用性解析相比单子解析有哪些优势?

似乎有共识认为应该把Parsec作为可应用的而不是单子的。在应用解析和单子解析之间,应用解析有什么好处呢? 风格 性能 抽象化 单子解析已经过时了吗?

48得票1回答
当使用像Parsec这样的解析器组合库时,我应该使用词法分析器吗?

在像 Haskell 的 Parsec 这样的解析器组合库中编写解析器时,通常有两种选择: 编写词法分析器将 String 输入拆分为标记,然后对 [Token] 执行解析 直接在 String 上编写解析器组合器 第一种方法通常是有意义的,因为许多解析输入可以被理解为由空格分隔的标记...

44得票2回答
Text.ParserCombinators.Parsec和Text.Parsec有什么区别?

Text Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy Text.Parsec.Char Text.Parsec.Combinator...

44得票3回答
Parsec与Yacc/Bison/Antlr:何时何地使用Parsec? (注:此为提问标题,无需回答)

我对Haskell和Parsec都很陌生。在阅读了Real World Haskell的第16章使用Parsec之后,我有一个问题:为什么和何时使用Parsec比其他解析器生成器(如Yacc/Bison/Antlr)更好? 我的理解是,Parsec创建了一种很好的编写解析器的DSL,并且Ha...

37得票3回答
使用Parsec和Data.Text

使用 Parsec 3.1,可以解析多种类型的输入: [Char] 使用 Text.Parsec.String Data.ByteString 使用 Text.Parsec.ByteString Data.ByteString.Lazy 使用 Text.Parsec.ByteString....

37得票4回答
解析器组合子能否提高效率?

大约6年前,我在OCaml中使用自己的解析器组合器进行了基准测试,发现它们比当时提供的解析器生成器慢了约5倍。最近我重新考虑了这个问题,并对比了Haskell的Parsec和一个用F#编写的简单手写优先级爬升解析器,结果惊讶地发现F#比Haskell快25倍。 以下是我用于从文件读取、解析和...

28得票5回答
使用解析器生成器(如happy)与使用解析器组合器相比有什么优势?

为了学习如何编写和解析上下文无关语法,我想选择一种工具。对于Haskell来说,有两个主要的选项:Happy可以从语法描述生成解析器,而*Parsec允许您直接在Haskell中编写解析器。 这两个方法的优缺点是什么?

25得票2回答
带有parsec的完整解析器示例?

我正在尝试制作一个简单函数语言的解析器,有点像Caml,但是我似乎卡在了一些最简单的事情上。 所以我想知道是否有一些更完整的parsec解析器示例,超越了“这就是如何解析2+3”的范畴。特别是术语中的函数调用等内容。 我已经读过“编写一个Scheme”,但Scheme的语法非常简单,对学习...

23得票3回答
Parsec:Applicatives与Monads的区别

我刚刚开始学习Parsec(对Haskell的经验很少),关于使用monad或applicative我有点困惑。在阅读了《Real World Haskell》、《Write You a Haskell》和这里的一个问题之后,总体感觉是更喜欢applicative,但是实际上我不知道到底应该怎...