Source file utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(*
 * utils.ml
 * -----------
 * Copyright : (c) 2019 - 2020, ZAN DoYe <zandoye@gmail.com>
 * Licence   : MIT
 *
 * This file is a part of mew.
 * This module implements strict impure trie tree data structure.
 *)

module Queue = struct
  let rec drop n q=
    if n > 0 then
      (ignore (Queue.take q);
      drop (n-1) q)

  let to_list_rev q= Queue.fold (fun l key-> key::l) [] q
  let to_list q= q |> to_list_rev |> List.rev
end