gpt4 book ai didi

haskell - Data.Text 与 Rope

转载 作者:行者123 更新时间:2023-12-03 15:29:22 25 4
gpt4 key购买 nike

我一直在研究绳索作为 Data.Text 的替代品,我非常喜欢我所看到的,以至于我现在不得不问这个问题.... 有没有什么情况下 Data.Text 会是更好的选择?

以下是导致我这样做的要点(如果我在其中任何一个方面错了,请纠正我)-

  • 内部的单个叶节点绳索(几乎)与 Data.Text 对象相同。单个节点绳索与文本的开销很小,只需一个位标志即可区分分支或叶子。如果您真的想要 Data.Text,只需使用未分开的绳索。
  • 绳索中的复杂性普遍相等或更好-插入/删除(log(N)对N),通过索引(log(N)/N取决于树的深度对N)。
  • 我已经读到,ropes 的成功被证明是 c 语言中的鱼龙混杂,因为线程安全代码损害了性能。然而,这些担忧在不可变的 Haskell 中应该无关紧要。事实上,在我看来,正因为如此,Haskell 和绳索是彼此的理想选择。

  • 同样,就像我之前的类似问题一样,我对结构的抽象特性更感兴趣,而不是当前情况(库使用情况、代码的硬化程度等)。如果你明天重写 Haskell 库,你会用 Data.Rope 代替 Data.Text 吗?

    最佳答案

    “压缩数组的手指树”似乎是一个不错的表示选择,尽管我会担心持续的开销。一些积极的流融合和其他一些短字符串优化的努力可能会解决这个问题,但是 Data.Rope缺少这些功能。现在Data.Rope不是真正的Data.Text更换网络。

  • 它主要实现字节字符串而不是字符字符串——它取代了 byteString 而不是文本。 Unicode 支持很重要。
  • 尽管爱德华非常出色,但罗普并没有那么成熟。一年没有任何贡献,也很少使用。
  • Data.Text背后有巨大的工程努力,高度优化,众所周知,有据可查
  • 关于haskell - Data.Text 与 Rope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713027/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com