1

我正在阅读 HAMT,并查看了无序容器中的参考实现,但注意到它们有自己的数组实现。为什么是这样?是为了速度吗?还是他们需要的一些自定义 API?

4

1 回答 1

8

查看代码后,我可以看到一些优化。它不支持大多数 Haskell 数组所具有的“Ix”索引转换。它有专门的原语,例如insert'插入到中间并动态调整数组大小,STArray 不支持,以及delete'缩小数组。

所以答案是速度和自定义 API。

于 2012-04-04T10:02:43.767 回答