好吧,这看起来应该很容易,但我就是不明白。如果我有一个数字序列,如何生成由运行总计组成的新序列?例如,对于序列 [1;2;3;4],我想将其映射到 [1;3;6;10]。以适当的功能方式。
Use List.scan https://msdn.microsoft.com/visualfsharpdocs/conceptual/list.scan%5b%27t%2c%27state%5d-function-%5bfsharp%5d:
let runningTotal = List.scan (+) 0 >> List.tail
[1; 2; 3; 4]
|> runningTotal
|> printfn "%A"
Seq.scan https://msdn.microsoft.com/visualfsharpdocs/conceptual/seq.scan%5b%27t%2c%27state%5d-function-%5bfsharp%5d基于的实施:
let runningTotal seq' = (Seq.head seq', Seq.skip 1 seq') ||> Seq.scan (+)
{ 1..4 }
|> runningTotal
|> printfn "%A"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)