Data.Vector的修改是否真的可以就地完成?

时间:2019-01-17 16:45:55

标签: haskell haskell-vector

modify的来源中,is stated如果可以安全地执行该操作,否则将修改该向量的副本。

但是请看modify的代码:

modify :: Vector v a => (forall s. Mutable v s a -> ST s ()) -> v a -> v a
modify p = new . New.modify p . clone

在我看来,clone总是被调用(这对我来说很有意义,因为我认为必须对不可变向量进行破坏性操作)。

我误会了吗?如果没有,那么clone不被调用的示例是什么?Data.Vector如何完成旁路?

0 个答案:

没有答案