Advertisement
Guest User

Untitled

a guest
May 26th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.54 KB | None | 0 0
  1.   let groupsOf (size: int) = Seq.map snd << Seq.filter (fst >> flip (%) size >> (=) 0) << Seq.mapi tuple2 << Seq.windowed size
  2.   let groupsOfAtMost (size: int) (s: seq<_>) =
  3.     seq {
  4.       let en = s.GetEnumerator ()
  5.       let more = ref true
  6.       while !more do
  7.         let group =
  8.           [
  9.             let i = ref 0
  10.             while !i < size && en.MoveNext () do
  11.               yield en.Current
  12.               i := !i + 1
  13.           ]
  14.         if List.isEmpty group then
  15.           more := false
  16.         else
  17.           yield group
  18.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement