gpt4 book ai didi

arrays - F# 中的 Array.replicate 和 Array.create 之间在功能上有区别吗?

转载 作者:行者123 更新时间:2023-12-04 10:03:09 27 4
gpt4 key购买 nike

我正在重构一些代码并注意到一些编码员使用了 Array.replicate和其他 Array.create使用重复相同的值初始化数组时。两个函数的签名是相同的:

> Array.create;;
val it : (int -> 'a -> 'a [])

> Array.replicate;;
val it : (int -> 'a -> 'a [])

我还注意到两者都引发了 ArgumentException在负面 count值,并且都允许计数为零。我的直觉告诉我它们是同义词,但后来我在 F# For Fun And Profit 上找到了这句话。 :

Array.create is basically the same as replicate (although with a subtly different implementation!) but replicate was only implemented for Array in F# v4.



有没有人知道存在哪些差异,或者出于所有意图和目的,它们是彼此的别名(也许 replicate 只是为了与 seq 相等而添加的)?

最佳答案

代码是等效的,不应有任何不同的表现。

似乎它是在 List 之后添加到 Seq 和 Array 中的,所以可能是为了 API 奇偶校验。这是一个旧的提交(2014 年),快速搜索问题并没有发现任何可以明确解释更改原因的问题。 https://github.com/dotnet/fsharp/commit/173d833660767fd24d523d09f317179cc3c3f4b9

关于arrays - F# 中的 Array.replicate 和 Array.create 之间在功能上有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61732295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com