F# 顺序折叠->;应用倒计时的最佳方法是什么?

F# 顺序折叠->;应用倒计时的最佳方法是什么?,f#,F#,我有一张这样的序号: [(1,0,10);(5,1,10);(5,0,10);(8,1,10);…] 我想把元组中的第三个元素减少1,每次第二个元素是1 [(1,0,10);(5,1,9);(5,0,9);(8,1,8);…] 我在想,我需要一个累加器,但我不知道如何实现。我走对了吗?我很接近,但使用了错误的函数 Seq.Scan就可以了……你只需要一张地图: [(1, 0, 10); (5, 1, 10); (5, 0, 10); (8, 1, 10); ...] |> List.ma

我有一张这样的序号:

[(1,0,10);(5,1,10);(5,0,10);(8,1,10);…]

我想把元组中的第三个元素减少1,每次第二个元素是1

[(1,0,10);(5,1,9);(5,0,9);(8,1,8);…]


我在想,我需要一个累加器,但我不知道如何实现。我走对了吗?

我很接近,但使用了错误的函数

Seq.Scan就可以了……

你只需要一张地图:

[(1, 0, 10); (5, 1, 10); (5, 0, 10); (8, 1, 10); ...] 
|> List.map (function (first,second,third) when second = 1 -> (first,second,third - 1) | other -> other)