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?