5

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]部分は醜く見えます。

4

2 に答える 2

4

多分あなたが欲しいSeq.mapiSeq.iteri

http://msdn.microsoft.com/en-us/library/ee340431.aspx

http://msdn.microsoft.com/en-us/library/ee370541

于 2012-05-24T18:54:52.650 に答える