In Rust, you can cycle on an iterator. For example:
fn main() {
for i in (1..4).cycle().take(5) {
print!("{} ", i);
}
}
Ouput:
1 2 3 1 2
How to do the same in F#?
[<EntryPoint>]
let main argv =
seq { 1 .. 4 } |> (* Something *) |> Seq.take 5 |> Seq.iter (printf "%d ")
0
I don't know of any built-in function, but you can easily create your own:
let cycle items = seq {
while true do
yield! items
}
or
let cycle' items =
Seq.initInfinite (fun _ -> items) |> Seq.concat
or
let rec cycle'' items = seq {
yield! items
yield! cycle'' items
}
Then
// 1 2 3 1 2
seq { 1 .. 3 } |> cycle |> Seq.take 5 |> Seq.iter (printf "%d ")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With