copyMutableArray和copyMutableArray之间的细微差别

时间:2018-12-11 23:56:46

标签: arrays haskell ghc

如果您查看copyMutableArray#的文档,则会显示

  

给出源数组,源数组的偏移量,目标数组,目标数组的偏移量以及要复制的元素数,将元素从源数组复制到目标数组。两个数组都必须完全包含指定的范围,但是不会选中。如果源和目标是同一阵列,则源和目标区域可能会重叠。

这类似于memmove syscall。 另一方面,包装函数copyMutableArray表示

  

将可变数组的切片复制到另一个数组。这两个数组可能不相同。

这类似于memcpy,尽管其定义主要只是将参数转发给copyMutableArray#

copyMutableArray (MutableArray dst#) (I# doff#)
                 (MutableArray src#) (I# soff#) (I# len#)
  = primitive_ (copyMutableArray# src# soff# dst# doff# len#)

两者之间是否存在有意义的区别?或者这是文档中的错误吗?

1 个答案:

答案 0 :(得分:2)

正如dfeuer在评论中指出的那样,这是一个错误。修正的pull request已合并。