F# Idiomatic Index 在打印索引时加一

F# Idiomatic Index plus one when printing an index

是否有更惯用的方法来使用 F# 打印索引 +1 值?

let plusOne i = i + 1
let collection = [1..10]

collection |> List.iteri (fun index value -> printfn "%i %i" (plusOne index) value)

F# 确实有许多特殊的习语,但这并不意味着它打破了非常常见的习语,其中索引 list/array... 从零开始。

所以,回答问题:不,F# 没有任何特殊的索引加法。

但是,如果您打算经常迭代索引加一的列表,则可以使用活动模式在参数声明中隐式增加索引权,如下所示:

let (|Inc|) = (+) 1
let collection = [1..10]
collection |> List.iteri (fun (Inc i) value -> printfn "%i %i" i value)