[英]GHC: Haskell string optimizations
我知道Data.Text
是比String = [Char]
更有效的存儲字符串數據的方法。 但是,似乎我在庫中看到的許多函數都希望將String
傳遞給它們。 考慮到指針將比字符串本身占用更多的空間,因此Char
的鏈接列表似乎效率很低。 除了列表融合(可能並不總是可能的)之外,GHC是否對[Char]
的存儲進行了優化,並且是否將類似的原理應用於其他列表?
所有基本庫函數都使用String
而不是更有效的類型的原因是Text
所需的文本庫不屬於基本庫。 但是,文本庫提供了自己的各種輸入/輸出功能的變體。 您可以在Data.Text.IO
找到它們。
還要注意,為了獲得有效的I / O,通常會使用現代抽象之一,例如管道,迭代器或管道。
這是答案。
字節串有點像列表,只有每個元素的大小為一個字節(或8位)。 他們處理懶惰的方式也不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.