Привет, я столкнулся со следующей проблемой, мне нужно переписать существующий код, чтобы улучшить его производительность.старая версия использовала синтаксический анализатор, определенный следующим образом:
newtype Parser Char a = Parser {runParser :: [Char] -> [(a,[Char])]}
для анализа строк из файлов.но это было слишком медленно и требовало много памяти для вычисления по строкам.Чтобы улучшить этот код, я решил использовать Data.ByteString.Lazy.Char8 вместо String, но я не знаю, как обращаться с парсером, возможно ли определить парсер таким способом?
newtype Parser Char a = parser {runParser :: ByteString -> [(a,ByteString)]} ?
или есть какой-нибудь пакет парсера, посвященный такой работе?
благодаря ответу