我想知道将惰性文本转换为按行尾拆分的严格文本列表的首选方法是什么。我想出了如下内容,但不能保证每个严格的文本元素都是一个完整的行(或者它是否有其他问题):
import qualified Data.Text.Lazy as LT
readLines filePath = do
contents <- Data.Text.Lazy.IO.readFile filePath
let lines = concat (map LT.toChunks (LT.lines contents))
return lines发布于 2012-07-12 23:22:53
readLines filePath = do
contents <- Data.Text.Lazy.IO.readFile filePath
let lines = concat (map LT.toChunks (LT.lines contents))
return lines并不能保证每个严格的块都是完整的行。事实上,每当惰性Text的块边界与行边界不重合时,您就会得到一条线,其中包含至少两个严格的块。
readLines filePath = do
contents <- Data.Text.Lazy.IO.readFile filePath
let lines = map (T.concat . LT.toChunks) (LT.lines contents)
return lines但是,将每行连接成一个严格的块。然而,进行连接可能比将每一行分别作为严格的块列表处理要慢。懒惰的Text。
https://stackoverflow.com/questions/11454869
复制相似问题