首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Data.Text诉Rope

Data.Text诉Rope
EN

Stack Overflow用户
提问于 2013-12-20 22:36:41
回答 2查看 440关注 0票数 14

我一直在寻找Data.Text的替代品,我非常喜欢我所看到的东西,所以我现在不得不问这个问题.有什么情况下Data.Text会是更好的选择吗?

以下是我要指出的几点(如果我在这些问题上错了,请纠正我)-

  1. 内部的单个叶节点绳子(几乎)与Data.Text对象(几乎)相同。单节点绳与文本之间的开销很小,只是用于区分分支或叶子的单个位标志。如果你真的想要Data.Text,就用一条不分裂的绳子。
  2. 复杂度在绳子上普遍相等或更好-插入/删除(log(N) vs N),按索引(log( N) /N,取决于树的深度对N)。
  3. 我读过这样的文章:在c语言中,绳子的成功被证明是一个混合的包,因为线程安全代码损害了性能。然而,这些担忧在恒久不变的Haskell中并不重要。事实上,在我看来,由于这一点,哈斯克尔和绳子是理想的彼此。

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

EN

回答 2

Stack Overflow用户

发布于 2013-12-21 00:59:08

“填充数组的手指树”似乎是一个很好的表示选择,尽管我会担心持续的开销。使用积极的流融合和对短字符串的其他一些优化可以解决这个问题,但是Data.Rope缺乏这些特性。现在,Data.Rope并不是一个真正的Data.Text替代品。

  1. 它主要实现字节字符串,而不是字符字符串--它代替byteString而不是文本。Unicode支持很重要。
  2. 尽管爱德华令人惊奇它已经一年没有任何捐款了,而且很少使用。
  3. Data.Text在其背后有着巨大的工程成果,是高度优化的,并且是众所周知的和文档化的。
票数 8
EN

Stack Overflow用户

发布于 2013-12-28 23:03:48

很久以前,当我尝试使用Rope时,作者告诉我,它还不能真正使用,这只是一个实验。Hackage的一个问题是很难学习哪些包/版本真正可以生产。

Rope和Data.Text兼容吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20713027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档