gpt4 book ai didi

parsing - Haskell中Data.ByteString.Lazy.Char8的解析器?

转载 作者:行者123 更新时间:2023-12-04 06:45:20 24 4
gpt4 key购买 nike

你好
我面临以下问题,我必须重新编写现有代码以提高他的表现。旧版本使用的是这样定义的解析器:

newtype Parser Char a = Parser {runParser :: [Char] -> [(a,[Char])]}

解析文件中的行。但它太慢了,需要大量内存才能实现逐行计算。为了改进该代码,我决定使用 Data.ByteString.Lazy.Char8 而不是 String,但我不知道如何处理解析器,是否可以以这种方式定义解析器?
newtype Parser Char a = parser {runParser :: ByteString -> [(a,ByteString)]} ?

或者,是否有专门用于此类工作的解析器包?

感谢回复

最佳答案

attoparsecParsec 3两者都有针对惰性字节字符串的接口(interface)。

(当然,可以以这种方式定义解析器,但我认为您的意思是

newtype Parser a = Parser {runParser :: ByteString -> [(a,ByteString)]}

)

关于parsing - Haskell中Data.ByteString.Lazy.Char8的解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com