是否有标准函数来枚举像 Python 的enumerate()一样工作的 F# 序列?
从头开始编写非常容易:
let enumerate (sq : seq<'T>) = seq {
let rec loop (e : IEnumerator<'T>) index = seq {
if e.MoveNext() then
yield (index, e.Current)
yield! loop e (index+1)
}
use enum = sq.GetEnumerator()
yield! loop enum 0
}
但我不想重新发明轮子。
PS:也,我试过了
let seasons = ["Spring"; "Summer"; "Fall"; "Winter"]
for x in Seq.zip [0..100000] seasons do
printfn "%A" x
但这[0..10000]
部分看起来很难看。