3 people like it.
    Like the snippet!
  
  Split sequences
  Split sequences based on a predicate.
  | 1: 
2: 
3: 
4: 
5: 
6: 
 | let split (selector:'a->bool) (source:seq<'a>) :seq<seq<'a>>=
  let i = ref 0
  source
  |> Seq.groupBy (fun elem -> if selector elem then incr i
                              !i)
  |> Seq.map snd
 | 
val split : selector:('a -> bool) -> source:seq<'a> -> seq<seq<'a>>
Full name: Script.split
val selector : ('a -> bool)
type bool = System.Boolean
Full name: Microsoft.FSharp.Core.bool
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 i : int ref
Multiple items
val ref : value:'T -> 'T ref
Full name: Microsoft.FSharp.Core.Operators.ref
--------------------
type 'T ref = Ref<'T>
Full name: Microsoft.FSharp.Core.ref<_>
module Seq
from Microsoft.FSharp.Collections
val groupBy : projection:('T -> 'Key) -> source:seq<'T> -> seq<'Key * seq<'T>> (requires equality)
Full name: Microsoft.FSharp.Collections.Seq.groupBy
val elem : 'a
val incr : cell:int ref -> unit
Full name: Microsoft.FSharp.Core.Operators.incr
val map : mapping:('T -> 'U) -> source:seq<'T> -> seq<'U>
Full name: Microsoft.FSharp.Collections.Seq.map
val snd : tuple:('T1 * 'T2) -> 'T2
Full name: Microsoft.FSharp.Core.Operators.snd
  
  
  More information