所以我有一個約8mb的文件,每個文件有6個整數,由一個空格分隔。Haskell更有效的方法來解析文件的位數
我解析這個電流的方法是:
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
和映射toInts超過
liftM lines . readFile
將返回我的元組的列表。但是,當我運行這個時,它需要將近25秒來加載文件並解析它。任何方式,我可以加快這一點?該文件只是純文本。
您能否提供更多信息:整個工作程序,輸入,運行方式,編譯方式(優化)還是在'ghci'中運行。你知道'Data.Bytestring'和'Data.Vector'。另外'讀'是很慢,至少這是我所聽到的。 – epsilonhalbe
另請參閱http://stackoverflow.com/questions/8366093/how-do-i-parse-a-matrix-of-integers-in-haskell/8366642 –