我一直在寻找绳索作为Data.Text的替代品,而且我喜欢我所看到的如此之多以致于我现在被迫问这个问题....是否有任何情况下Data.Text将是更好的选择?Data.Text与绳索
下面是导致我这个(纠正我,如果我错了,对任何这些)点 -
单叶节点绳子内部是(几乎)同样的事情作为Data.Text对象。单节点绳索与文本的开销很小,只是用于区分分支或叶子的单个位标志。如果你真的想要Data.Text,只需使用非分离的绳索。
复杂性在绳索插入/删除(log(N)vs N)中通过相等或更好,通过索引获得(log(N)/ N取决于树的深度与N)。
我读过,绳索的成功被证明是c中的混合包,因为性能受到线程安全代码的伤害。然而,这些问题在不可变的Haskell中应该不重要。事实上,在我看来,正因为如此,Haskell和绳索才是理想的选择。
同样,像我以前类似的问题,我更感兴趣的是结构,而不是当前的情况(库的使用,如何硬代码等)的抽象特质。如果你明天重写了Haskell库,你会用Data.Rope替代Data.Text吗?
但是,这些评论都是关于实现......我很好奇理想的文本与理想的绳索。作为一个社区我们应该努力的是什么,伟大的绳索和伟大的文本,还是伟大的绳索? – jamshidh
字符串与字符串的字符串绝对不是*实现细节。 – Venge
@ Kata-没有人声称它是....我在说这个答案是关于当前图书馆的状态,我对独立于图书馆的概念感兴趣。 – jamshidh