3 people like it.
Like the snippet!
Seq.trySkip
Tries to skip the given number of items and returns the rest. Disposes the enumerator at the end.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
module Seq =
let trySkip (n : int) (s : _ seq) =
seq {
use e = s.GetEnumerator ()
let mutable i = 0
let mutable dataAvailable = e.MoveNext ()
while dataAvailable && i < n do
dataAvailable <- e.MoveNext ()
i <- i + 1
if dataAvailable then
yield e.Current
while e.MoveNext () do
yield e.Current
}
|
module Seq
from Microsoft.FSharp.Collections
val trySkip : n:int -> s:seq<'a> -> seq<'a>
Full name: Script.Seq.trySkip
val n : int
Multiple items
val int : value:'T -> int (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.int
--------------------
type int = int32
Full name: Microsoft.FSharp.Core.int
--------------------
type int<'Measure> = int
Full name: Microsoft.FSharp.Core.int<_>
val s : seq<'a>
Multiple items
val seq : sequence:seq<'T> -> seq<'T>
Full name: Microsoft.FSharp.Core.Operators.seq
--------------------
type seq<'T> = System.Collections.Generic.IEnumerable<'T>
Full name: Microsoft.FSharp.Collections.seq<_>
val e : System.Collections.Generic.IEnumerator<'a>
System.Collections.Generic.IEnumerable.GetEnumerator() : System.Collections.Generic.IEnumerator<'a>
val mutable i : int
val mutable dataAvailable : bool
System.Collections.IEnumerator.MoveNext() : bool
property System.Collections.Generic.IEnumerator.Current: 'a
More information