こんにちは、私は次の問題に直面しています。彼のパフォーマンスを向上させるために、既存のコードを書き直さなければなりません。古いバージョンは、次のように定義されたパーサーを使用していました。
newtype Parser Char a = Parser {runParser :: [Char] -> [(a,[Char])]}
ファイルから行を解析します。しかし、それは遅すぎて、行ごとに計算を行うには大量のメモリが必要でした。そのコードを改善するために、String の代わりに Data.ByteString.Lazy.Char8 を使用することにしましたが、パーサーの処理方法がわかりません。この方法でパーサーを定義することは可能ですか?
newtype Parser Char a = parser {runParser :: ByteString -> [(a,ByteString)]} ?
または、これらの種類の作業専用のパーサー パッケージはありますか?
返信ありがとう