gpt4 book ai didi

f# - 在 F# 中使用 array.fold 的累积总和

转载 作者:行者123 更新时间:2023-12-04 23:19:57 25 4
gpt4 key购买 nike

我有以下类型的数组

let myarray = [| 1 .. 5 |]

我想得到另一个数组,其中每个元素都是它之前的元素的累积总和:
let mycumarray = [| 1 3 6.. 15 |]

我试图做的是:
let sumArray array = Array.fold (fun acc elem -> acc + elem) 0.0 array
let mycumarray = sumArray myarray

但是它不起作用。有人对获得累计金额有什么建议吗?

最佳答案

我认为您正在寻找 Array.scan ,这与 Array.fold 非常相似,但返回所有状态值,而不仅仅是最后一个:

(Array.scan (+) 0 myArray).[1..]
.[1..]是数组切片器符号( see the MSDN on arrays in F# )来删除第一个元素,这是必要的,因为 scan在输出中包含初始状态。

关于f# - 在 F# 中使用 array.fold 的累积总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004927/

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