GHC:Haskell字符串优化

Cli*_*ton 4 haskell list ghc

我知道Data.Text存储字符串数据的效率要高得多String = [Char].但是,我在库中看到的许多函数似乎都希望String传递给它们.Chars 的链表似乎非常低效,因为指针会占用比字符串本身更多的空间.除了列表融合(可能并不总是可能)之外,GHC对存储的存储有什么优化,[Char]它是否将类似的原则应用于其他列表?

小智 5

所有基本库函数使用String而不是更高效类型的原因是所需的文本Text不是基本库的一部分.但是,文本库提供了各种输入/输出功能的变体.你可以找到它们Data.Text.IO.

另请注意,对于高效的I/O,您通常会使用一种现代抽象,例如管道,迭代或管道.