2

怠惰なテキストを行末で分割された厳密なテキストのリストに変換するための推奨される方法は何だろうと思っていました。私は次のようなものを思いつきましたが、各厳密なテキスト要素が完全な行になることが保証されているかどうかはわかりません (または他の問題がある場合):

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
4

1 に答える 1

2
readLines filePath = do
    contents <- Data.Text.Lazy.IO.readFile filePath
    let lines = concat (map LT.toChunks (LT.lines contents))
    return lines

各厳密なチャンクが完全な行であることを保証するものではありません。実際、lazy のチャンク境界がText行境界と一致しない場合は常に、少なくとも 2 つの厳密なチャンクに含まれる行が得られます。

readLines filePath = do
    contents <- Data.Text.Lazy.IO.readFile filePath
    let lines = map (T.concat . LT.toChunks) (LT.lines contents)
    return lines

ただし、各行を 1 つの厳密なチャンクに連結します。ただし、連結を行うと、各行を厳密なチャンクのリストとして操作するよりも遅くなる場合があります。怠け者Text

于 2012-07-12T15:22:52.970 に答える