So habe ich etwa eine 8 MB-Datei von jeder mit 6 INTS durch ein Leerzeichen getrennt.Haskell Effizientere Art, Datei von Ziffernzeilen zu analysieren
meine aktuelle Methode, dies für die Analyse ist:
tuplify6 :: [a] -> (a, a, a, a, a, a)
tuplify6 [l, m, n, o, p, q] = (l, m, n, o, p, q)
toInts :: String -> (Int, Int, Int, Int, Int, Int)
toInts line =
tuplify6 $ map read stringNumbers
where stringNumbers = split " " line
und Kartierung toInts über
liftM lines . readFile
die mich wird eine Liste von Tupeln. Wenn ich dies jedoch ausführe, dauert es fast 25 Sekunden, um die Datei zu laden und zu parsen. Irgendwie kann ich das beschleunigen? Die Datei ist nur einfacher Text.
könnten Sie ein bisschen mehr Informationen zur Verfügung stellen: das gesamte Arbeitsprogramm, Eingabe, wie Sie es ausführen, kompilieren Sie es (mit Optimierung) oder führen Sie es in 'ghci'. Kennst du 'Data.Betestring' und' Data.Vector'? Auch "lesen" ist ziemlich langsam, zumindest habe ich das gehört. – epsilonhalbe
Siehe auch http://stackoverflow.com/questions/8366093/how-do-i-parse-a-matrix-of-integers-in-haskell/8366642 –