3 people like it.
    Like the snippet!
  
  tryNth
  Computes the nth value of a sequence if the nth value is past the length of the sequence then None is returned else some
  | 1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
 | let tryNth index (source : seq<_>) = 
    let rec tryNth' index (e : System.Collections.Generic.IEnumerator<'a>) = 
        if not (e.MoveNext()) then None
        else if index < 0 then None
        else if index = 0 then Some(e.Current)
        else tryNth' (index-1) e
    use e = source.GetEnumerator()
    tryNth' index e
 | 
val tryNth : index:int -> source:seq<'a> -> 'a option
Full name: Script.tryNth
val index : int
val source : 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 tryNth' : (int -> System.Collections.Generic.IEnumerator<'a> -> 'a option)
val e : System.Collections.Generic.IEnumerator<'a>
namespace System
namespace System.Collections
namespace System.Collections.Generic
type IEnumerator<'T> =
  member Current : 'T
Full name: System.Collections.Generic.IEnumerator<_>
val not : value:bool -> bool
Full name: Microsoft.FSharp.Core.Operators.not
System.Collections.IEnumerator.MoveNext() : bool
union case Option.None: Option<'T>
union case Option.Some: Value: 'T -> Option<'T>
property System.Collections.Generic.IEnumerator.Current: 'a
System.Collections.Generic.IEnumerable.GetEnumerator() : System.Collections.Generic.IEnumerator<'a>
  
  
  More information