我有这样的Seq:
[(1,0,10); (5,1,10); (5,0,10); (8,1,10); ...]
我希望每当第二个元素为1时,将元组中的第三个元素减少一个
[(1,0,10); (5,1,9); (5,0,9); (8,1,8); ...]
我在想Seq.Fold b / c我需要一个累加器,但我不知道如何实现。我是在正确的轨道上吗?
答案 0 :(得分:2)
你只需要一张地图:
[(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)
答案 1 :(得分:-1)
我很接近,但使用了错误的功能
Seq.Scan可以解决这个问题......