Haskell: Verwendung von attoparsec zum Lesen einer verschachtelten Liste aus einem ByteString

Ich habe eine Textdatei (ca. 300 MB groß) mit einer verschachtelten Liste, ähnlich der folgenden:

[[4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 87, 92, 93, 94, 95], [4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 87, 92, 93, 94],[4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 85, 87, 92, 93, 94, 95]]

Hier ist mein Programm, um die Datei in ein Hash einzulesenInteger Liste:

import qualified Data.ByteString as ByteStr

main :: IO ()

-- HOW to do the same thing but using ByteStr.readFile for file access?
main = do fContents <- readFile filePath 
          let numList = readNums fContents
          putStrLn (show nums)

Dies funktioniert für kleine Textdateien, aber ich möchte verwendenByteString um die Datei schnell zu lesen. Ich fand heraus, dass es keine gibtread Funktion für ByteString, stattdessen sollten Sie Ihren eigenen Parser in attoparsec schreiben, da er das Parsen von ByteStrings unterstützt.

Wie kann ich verwendenattoparsec die verschachtelte Liste zu analysieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage