Why is Haskell's default string implementation a linked list of chars?

后端 未结 3 547
误落风尘
误落风尘 2021-02-01 19:11

The fact that Haskell\'s default String implementation is not efficient both in terms of speed and memory is well known. As far as I know the [] lists

3条回答
  •  庸人自扰
    2021-02-01 20:03

    Efficiency is only one axis to measure an abstraction on. While lists are pretty inefficient for text-y operations, they are darn convenient in that there's a lot of list operations implemented polymorphically that have useful interpretations when specialized to [Char], so you get a lot of reuse both in the library implementation and in the user's brain.

    It's not clear that, were the language being designed today from scratch with our current level of experience, the same decision would be made; however, it's not always possible to make decisions perfectly before experience is available.

提交回复
热议问题