Sourceval period : int -> (int -> unit) -> unit -> unit Sourceval timely : float -> ?first:float -> ('a -> unit) -> 'a -> unit Sourceval timely_counter : float -> (int -> unit) -> unit -> unit Combination of the above, see the code for more info.
Enum utilities
chunk_e n e splits enum e into chunks of n elements each (except the last which can be shorter). NB the order in result is not specified
List utilities
Sourceval list_min : ?cmp:('a -> 'a -> int) -> 'a list -> 'a find the minimum element in the list
Sourceval list_uniq : ('a -> 'b) -> 'a list -> 'a list Sourceval list_sorted_uniq : ('a -> 'a -> bool) -> 'a list -> 'a list Get a random element from a list.
Sourceval slice : int -> int -> 'a list -> 'a list extract sublist from a list, e.g. slice 1 3 [0;1;2;3;4] will return [1;2;3].
Partitioning a list into chunks
Sourceval chunk : int -> 'a list -> 'a list list chunk n l splits list l into chunks of n elements each (except the last which can be shorter). NB the order in result is not specified FIXME?
Sourceval distribute : int -> 'a list -> 'a list array distribute n l splits l into n chunks, does not preserve the order of the elements.
Sourceval undistribute : 'a list array -> 'a list Sourceval partition : int -> 'a list -> 'a list array Sourceval unpartition : 'a list array -> 'a list Sourceval stable_partition : int -> 'a list -> 'a list list stable_partition l n splits l into n chunks, preserves the order of the elements.
Sourceval stable_unpartition : 'a list list -> 'a list Array utilities
Sourceval array_rfindi : ('a -> bool) -> 'a array -> int Sourceval array_rfind : ('a -> bool) -> 'a array -> 'a Sourceval array_iter_rev : ('a -> unit) -> 'a array -> unit array_iter_rev f a calls f on each elements of a in reverse order.
shuffle ?state a shuffles an array, giving a uniform random distribution.
Sourceval binary_search' : 'a array -> ('a -> 'b -> int) -> 'b -> 'a option Sourceval binary_search : 'a array -> ('a -> 'b -> int) -> 'b -> bool Sourceval chunk_a : int -> 'a array -> 'a array list chunk_a n a splits array a into chunks of n elements each (except the last which can be shorter), preserving the order of elements, i.e. reverse operation is Array.concat
DynArray utilities
Sourceval quick_sort :
'a DynArray.t ->
?start:int ->
?n:int ->
('a -> 'a -> int) ->
unit Hashtbl utilities
hashtbl_find ht f_default k associates f_default () to k in ht, if no previous association exists.
Gc / Memory utilities
Memory format parsing/pretty-printing
Sourceval parse_bytes_unit : string -> int Parse memory size specification, accepts: MB KB 1MB 20gb
Sourceval show_bytes_unit : int -> string Pretty-print memory size in a way that can be parsed back by parse_bytes_unit
Pretty-printing
Sourceval bytes_of_words : int -> int Sourceval bytes_of_words_f : float -> float Sourceval bytes_string : int -> string short human-readable display for memory measures
Sourceval bytes_string_i64 : int64 -> string Sourceval bytes_string_f : float -> string Sourceval caml_words : int -> string Sourceval caml_words_f : float -> string string describing gc current settings.
Sourceval gc_show : string -> ('a -> 'b) -> 'a -> 'b Sourceval gc_settings : unit -> string File IO
Counting bytes. Not closing underlying io.
Copy all data from input to output
Extracting lines from a file.
Sourceval file_lines_exn : string -> string list Sourceval file_lines : string -> string list Sourceval make_config_lines : string list -> string list read lines from file skipping empty lines and comments (lines starting with '#')
Sourceval config_lines_exn : string -> string list Sourceval config_lines : string -> string list Time utilities
Basic timer. Also allows recording a sequence of interesting times from the given start point. Can serialize recorded events to json (useful for Logstash events)
Convenience wrapper to start timer_start with Time.now()
Timer running from the start of the program execution.
Sourceval speed : int -> float -> float Log or time execution of a function
Sourceval log : ?name:string -> ('a -> unit) -> 'a -> unit Sourceval log_do : ?name:string -> (unit -> unit) -> unit Comparison
Sourceval compare_by : ('a -> 'b) -> 'a -> 'a -> int Sourceval compare2 :
('a -> 'b -> int) ->
('c -> 'd -> int) ->
('a * 'c) ->
('b * 'd) ->
int Sourceval compare2_by : ('a -> 'b) -> ('c -> 'd) -> ('a * 'c) -> ('a * 'c) -> int Sourceval compare_fst : ('a -> 'b -> 'c) -> ('a * 'd) -> ('b * 'e) -> 'c Benchmarking functions
Sourceval bench : ?compact:(unit -> unit) -> int -> (unit -> 'a) -> string Sourceval run_bench :
?compact:(unit -> unit) ->
int ->
(string * (unit -> 'a)) list ->
unit Command-line arguments
Does not contains Sys.argv.(0).
Misc.
Sourceval shell_sequence : string list -> string list name01 name02 name09 name10 name11 -> name0{1..2} name{09..11}
Sourceval hexdump : string -> string Sourcetype ewma = (float -> unit) * (unit -> float) Exponential Weighted Moving Average (smooth) 0.05 < alpha < 0.15 (dynamic)
generates a string of n random bytes.
generates a string of n random ascii chars.