我现在正在教自己Haskell,我想知道在Haskell中处理字符串时最好的做法是什么.
Haskell中的默认字符串实现是Char列表.根据Real World Haskell的说法,这对于文件输入输出是低效的,因为每个字符都是单独分配的(我认为这意味着String基本上是Haskell中的链表,但我不确定.)
但是如果默认字符串实现对于文件i/o来说效率低下,那么在内存中使用字符串是否效率低下呢?为什么或者为什么不?C使用char数组来表示String,我认为这将是大多数语言中默认的处理方式.
正如我所看到的,String的列表实现将占用更多内存,因为每个字符都需要开销,并且还有更多时间进行迭代,因为需要指针解引用才能到达下一个char.但到目前为止我喜欢和Haskell一起玩,所以我想相信默认的实现是有效的.