首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Data.Text.Lazy.Text转换为Data.Text.Text类型的行列表

将Data.Text.Lazy.Text转换为Data.Text.Text类型的行列表
EN

Stack Overflow用户
提问于 2012-07-12 23:08:48
回答 1查看 160关注 0票数 2

我想知道将惰性文本转换为按行尾拆分的严格文本列表的首选方法是什么。我想出了如下内容,但不能保证每个严格的文本元素都是一个完整的行(或者它是否有其他问题):

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-12 23:22:53

代码语言:javascript
复制
readLines filePath = do
    contents <- Data.Text.Lazy.IO.readFile filePath
    let lines = concat (map LT.toChunks (LT.lines contents))
    return lines

并不能保证每个严格的块都是完整的行。事实上,每当惰性Text的块边界与行边界不重合时,您就会得到一条线,其中包含至少两个严格的块。

代码语言:javascript
复制
readLines filePath = do
    contents <- Data.Text.Lazy.IO.readFile filePath
    let lines = map (T.concat . LT.toChunks) (LT.lines contents)
    return lines

但是,将每行连接成一个严格的块。然而,进行连接可能比将每一行分别作为严格的块列表处理要慢。懒惰的Text

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11454869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档