Up

Module Core_list0

Signature

module List = StdLabels.List
module String = StdLabels.String
val invalid_argf : ('a, unit, string, unit -> 'b) Pervasives.format4 -> 'a
module T : sig .. end
include T
type 'a t = 'a list
module Typename_of_t : sig .. end
val typename_of_t : 'a Typerep_lib.Typename.t -> 'a t Typerep_lib.Typename.t
val typerep_of_t : 'a . 'a Typerep_lib.Std.Typerep.t -> 'a t Typerep_lib.Std.Typerep.t
val bin_size_t : 'a Bin_prot.Std.sizer -> 'a list -> int
val bin_writer_t : 'a Bin_prot.Type_class.writer -> 'a list Bin_prot.Type_class.writer
val __bin_read_t__ : 'a -> 'b -> pos_ref:Bin_prot.Common.pos Pervasives.ref -> 'c -> 'd
val bin_read_t : 'a Bin_prot.Read.reader -> Bin_prot.Common.buf -> pos_ref:Bin_prot.Common.pos_ref -> 'a list
val bin_reader_t : 'a Bin_prot.Type_class.reader -> 'a list Bin_prot.Type_class.reader
val bin_t : 'a Bin_prot.Type_class.t -> 'a list Bin_prot.Type_class.t
val t_of_sexp : 'a . (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : 'a . ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val of_list : 'a -> 'a
val range' : compare:('a -> 'a -> int) -> stride:('a -> 'a) -> ?start:[<
| `exclusive
| `inclusive
> `inclusive] -> ?stop:[<
| `exclusive
| `inclusive
> `exclusive] -> 'a -> 'a -> 'a list
val range : ?stride:int -> ?start:[<
| `exclusive
| `inclusive
> `inclusive] -> ?stop:[<
| `exclusive
| `inclusive
> `exclusive] -> int -> int -> int list
module Test_values : sig .. end
val length : 'a list -> int
val hd_exn : 'a list -> 'a
val tl_exn : 'a list -> 'a list
val hd : 'a list -> 'a option
val tl : 'a list -> 'a list option
val nth : 'a list -> int -> 'a option
val nth_exn : 'a list -> int -> 'a
val rev_append : 'a list -> 'a list -> 'a list
val rev : 'a list -> 'a list
val unordered_append : 'a list -> 'a list -> 'a list
val rev_map : 'a list -> f:('a -> 'b) -> 'b list
exception Length_mismatch of string * int * int
val check_length2 : string -> 'a list -> 'b list -> unit
val check_length3 : string -> 'a list -> 'b list -> 'c list -> unit
val iter2_exn : 'a list -> 'b list -> f:('a -> 'b -> unit) -> unit
val rev_map2_exn : 'a list -> 'b list -> f:('a -> 'b -> 'c) -> 'c list
val fold2_exn : 'a list -> 'b list -> init:'c -> f:('c -> 'a -> 'b -> 'c) -> 'c
val for_all2_exn : 'a list -> 'b list -> f:('a -> 'b -> bool) -> bool
val exists2_exn : 'a list -> 'b list -> f:('a -> 'b -> bool) -> bool
val mem : ?equal:('a -> 'a -> bool) -> 'a list -> 'a -> bool
val rev_filter : 'a list -> f:('a -> bool) -> 'a list
val filter : 'a list -> f:('a -> bool) -> 'a list
val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val find_map : 'a list -> f:('a -> 'b option) -> 'b option
val find_map_exn : 'a list -> f:('a -> 'b option) -> 'b
val find : 'a list -> f:('a -> bool) -> 'a option
val find_exn : 'a list -> f:('a -> bool) -> 'a
val findi : 'a list -> f:(int -> 'a -> bool) -> (int * 'a) option
val find_mapi : 'a list -> f:(int -> 'a -> 'b option) -> 'b option
val find_mapi_exn : 'a list -> f:(int -> 'a -> 'b option) -> 'b
val for_alli : 'a list -> f:(int -> 'a -> bool) -> bool
val existsi : 'a list -> f:(int -> 'a -> bool) -> bool
val exists : 'a list -> f:('a -> bool) -> bool

changing the order of arguments on some standard List functions.

val for_all : 'a list -> f:('a -> bool) -> bool
val iter : 'a list -> f:('a -> unit) -> unit
val fold : 'a list -> init:'b -> f:('b -> 'a -> 'b) -> 'b

For the container interface.

val fold_left : 'a list -> init:'b -> f:('b -> 'a -> 'b) -> 'b
val to_array : 'a list -> 'a array
val to_list : 'a -> 'a

Tail recursive versions of standard List module

Tail recursive versions of standard List module

val slow_append : 'a list -> 'a list -> 'a list
val count_append : 'a list -> 'a list -> int -> 'a list
val append : 'a list -> 'a list -> 'a list
val map_slow : 'a list -> f:('a -> 'b) -> 'b list
val count_map : f:('a -> 'b) -> 'a list -> int -> 'b list
val map : 'a list -> f:('a -> 'b) -> 'b list
val (>>|) : 'a list -> ('a -> 'b) -> 'b list
val map2_exn : 'a list -> 'b list -> f:('a -> 'b -> 'c) -> 'c list
val rev_map3_exn : 'a list -> 'b list -> 'c list -> f:('a -> 'b -> 'c -> 'd) -> 'd list
val map3_exn : 'a list -> 'b list -> 'c list -> f:('a -> 'b -> 'c -> 'd) -> 'd list
val rev_map_append : 'a list -> 'b list -> f:('a -> 'b) -> 'b list
val fold_right : 'a list -> f:('a -> 'b -> 'b) -> init:'b -> 'b
val unzip : ('a * 'b) list -> 'a list * 'b list
val zip_exn : 'a list -> 'b list -> ('a * 'b) list
val zip : 'a list -> 'b list -> ('a * 'b) list option

Additional list operations

Additional list operations

val rev_mapi : 'a list -> f:(int -> 'a -> 'b) -> 'b list
val mapi : 'a list -> f:(int -> 'a -> 'b) -> 'b list
val iteri : 'a list -> f:(int -> 'a -> unit) -> unit
val foldi : 'a list -> f:(int -> 'b -> 'a -> 'b) -> init:'b -> 'b
val filteri : 'a list -> f:(int -> 'a -> bool) -> 'a list
val reduce : 'a list -> f:('a -> 'a -> 'a) -> 'a option
val reduce_exn : 'a list -> f:('a -> 'a -> 'a) -> 'a
val reduce_balanced : 'a list -> f:('a -> 'a -> 'a) -> 'a option
val reduce_balanced_exn : 'a list -> f:('a -> 'a -> 'a) -> 'a
val groupi : 'a list -> break:(int -> 'a -> 'a -> bool) -> 'a list list
val group : 'a list -> break:('a -> 'a -> bool) -> 'a list list
val concat_map : 'a list -> f:('a -> 'b list) -> 'b list
val concat_mapi : 'a list -> f:(int -> 'a -> 'b list) -> 'b list
val merge : 'a list -> 'a list -> cmp:('a -> 'a -> int) -> 'a list
module Monad : sig .. end
val ignore_m : 'a list -> unit list
val join : 'a list list -> 'a list
val bind : 'a list -> ('a -> 'b list) -> 'b list
val (>>=) : 'a list -> ('a -> 'b list) -> 'b list
val return : 'a -> 'a list
val all : 'a list list -> 'a list list
val all_ignore : unit list list -> unit list
val last_exn : 'a list -> 'a

returns final element of list

val last : 'a list -> 'a option

optionally returns final element of list

val is_prefix : 'a list -> prefix:'b list -> equal:('b -> 'a -> bool) -> bool
val find_consecutive_duplicate : 'a list -> equal:('a -> 'a -> bool) -> ('a * 'a) option
val remove_consecutive_duplicates : 'a list -> equal:('a -> 'a -> bool) -> 'a list
val dedup : ?compare:('a -> 'a -> int) -> 'a list -> 'a list

returns sorted version of list with duplicates removed

val contains_dup : ?compare:('a -> 'a -> int) -> 'a list -> bool
val find_a_dup : ?compare:('a -> 'a -> int) -> 'a list -> 'a option
val find_all_dups : ?compare:('a -> 'a -> int) -> 'a list -> 'a list
type sexp_thunk = unit -> Sexplib.Sexp.t
val sexp_of_sexp_thunk : (unit -> 'a) -> 'a
exception Duplicate_found of sexp_thunk * string
val exn_if_dup : ?compare:('a -> 'a -> int) -> ?context:string -> 'a list -> to_sexp:('a -> Sexplib.Sexp.t) -> unit
val count : 'a list -> f:('a -> bool) -> int
val sum : (module Commutative_group.S with type t = 'a) -> 'b list -> f:('b -> 'a) -> 'a
val min_elt : 'a list -> cmp:('a -> 'a -> int) -> 'a option
val max_elt : 'a list -> cmp:('a -> 'a -> int) -> 'a option
val counti : 'a list -> f:(int -> 'a -> bool) -> int
val init : int -> f:(int -> 'a) -> 'a list
val rev_filter_map : 'a list -> f:('a -> 'b option) -> 'b list
val filter_map : 'a list -> f:('a -> 'b option) -> 'b list
val rev_filter_mapi : 'a list -> f:(int -> 'a -> 'b option) -> 'b list
val filter_mapi : 'a list -> f:(int -> 'a -> 'b option) -> 'b list
val filter_opt : 'a option list -> 'a list
val partition_map : 'a list -> f:('a -> [<
| `Fst of 'b
| `Snd of 'c
]) -> 'b list * 'c list
val partition_tf : 'a list -> f:('a -> bool) -> 'a list * 'a list
module Assoc : sig .. end
val sub : 'a list -> pos:int -> len:int -> 'a list
val slice : 'a list -> int -> int -> 'a list
val split_n : 'a list -> int -> 'a list * 'a list
val take : 'a list -> int -> 'a list
val drop : 'a list -> int -> 'a list
val split_while : 'a list -> f:('a -> bool) -> 'a list * 'a list
val take_while : 'a list -> f:('a -> bool) -> 'a list
val drop_while : 'a list -> f:('a -> bool) -> 'a list
val cartesian_product : 'a list -> 'b list -> ('a * 'b) list
val concat : 'a list list -> 'a list
val concat_no_order : 'a list list -> 'a list
val cons : 'a -> 'a list -> 'a list
val is_empty : 'a list -> bool
val is_sorted : 'a list -> compare:('a -> 'a -> int) -> bool
val is_sorted_strictly : 'a list -> compare:('a -> 'a -> int) -> bool
module Infix : sig .. end
val permute : ?random_state:Random.State.t -> 'a list -> 'a list
val to_string : f:('a -> string) -> 'a list -> string
val compare : ('a -> 'b -> int) -> 'a list -> 'b list -> int
val equal : 'a list -> 'b list -> equal:('a -> 'b -> bool) -> bool
val transpose : 'a list list -> 'a list list option
exception Transpose_got_lists_of_different_lengths of int list
val transpose_exn : 'a list list -> 'a list list
val intersperse : 'a list -> sep:'a -> 'a list