标签: haskell data-structures
我正在阅读HAMT,并查看了无序容器中的参考实现,但注意到它们有自己的数组实现。为什么是这样?是速度吗?或者它是否需要一些自定义API?
答案 0 :(得分:7)
在looking at the code之后,我可以看到一些优化。它不支持大多数Haskell阵列具有的“Ix”索引转换。它有专门的原语,如insert'插入到中间并动态调整数组大小,STArray不支持,以及delete'缩小了数组。
insert'
delete'
所以答案是速度和自定义API。