Here's a variation on @Brian's solution:
["1";"a";"2";"b";"3";"c";"4";"d";"5";"e";"6";"f"] |> Seq.pairwise |> Seq.mapi (fun ix -> if i%2=0 then Some(x) else None) |> Seq.choose id
And here is a brain melter using Seq.scan:
["1";"a";"2";"b";"3";"c";"4";"d";"5";"e";"6";"f"] |> Seq.scan (fun ((i,prev),_) n -> match prev with | Some(n') when i%2=0 -> ((i+1,Some(n)), Some(n',n)) | _ -> ((i+1,Some(n)), None)) ((-1,None), None) |> Seq.choose snd
Stephen swensen
source share