我有一个以下类型的数组
let myarray = [| 1 .. 5 |]
Run Code Online (Sandbox Code Playgroud)
我想得到另一个数组,其中每个元素是前面的元素的累积总和:
let mycumarray = [| 1 3 6.. 15 |]
Run Code Online (Sandbox Code Playgroud)
我试图做的是:
let sumArray array = Array.fold (fun acc elem -> acc + elem) 0.0 array
let mycumarray = sumArray myarray
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有没有人有任何建议来获得累积金额?
我认为你正在寻找Array.scan,它非常相似Array.fold,但返回所有状态值而不是最后一个:
(Array.scan (+) 0 myArray).[1..]
Run Code Online (Sandbox Code Playgroud)
的.[1..]是ARRAY切片机符号(请参阅MSDN在F#阵列),因为丢弃的第一个元素,这是必要scan在输出中包括的初始状态.
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |