Skip to main content
Version: Next

list

Lists

type 'elt t = 'elt list

The type `t` is an alias for the predefined type `list`.

val empty : 'elt.'elt t

The value empty is the empty list. It is a synonym for []. In some contexts, it is useful to annotate it with its type, for example: (empty : int list).

val length : 'elt.'elt t -> nat

The call length l is the number of elements in the list l. Note: List.length is another name for List.size.

val size : 'elt.'elt t -> nat

The call size l is the number of elements in the list l.

val head : 'elt.'elt t -> 'elt option

The call head l, where l is a list, is None if l is empty; otherwise, Some hd, where hd is the head of the list.

val head_opt : 'elt.'elt t -> 'elt option

**Deprecated:** Use `List.head` instead.

The call head_opt l, where l is a list, is None if l is empty; otherwise, Some hd, where hd is the head of the list.

val tail : 'elt.'elt t -> 'elt t option

The call tail l, where l is a list, is None if l is empty; otherwise, Some tl, where tl is the tail of the list.

val tail_opt : 'elt.'elt t -> 'elt t option

**Deprecated:** Use `List.tail` instead.

The call tail_opt l, where l is a list, is None if l is empty; otherwise, Some tl, where tl is the tail of the list.

val map : 'src 'dst.('src -> 'dst) -> 'src list -> 'dst list

The call map f [a1; ...; an] applies the function f to a1, ..., an (from left to right), and builds the list [f a1; ...; f an] with the results returned by f.

val iter : 'elt.('elt -> unit) -> 'elt t -> unit

The call iter f [a1; ...; an] applies the function f in turn to [a1; ...; an]. It is equivalent to let () = f a1 in let () = f a2 in ... in f an.

val fold_left : 'elt 'acc.(('acc * 'elt) -> 'acc) -> 'acc -> 'elt t -> 'acc

The call fold_left f init [a1; ...; an] is f (... (f (f init a1) a2) ...) an.

val fold_right : 'elt 'acc.(('elt * 'acc) -> 'acc) -> 'elt t -> 'acc -> 'acc

The call fold_right f [a1; ...; an] init is f a1 (f a2 (... (f an init) ...)).

val fold : 'elt 'acc.(('acc * 'elt) -> 'acc) -> 'elt t -> 'acc -> 'acc

The call fold f [a1; ...; an] init is f (... (f (f init a1) a2) ...) an. Note: fold_left f init list is the same as fold f list init.

val cons : 'elt.'elt -> 'elt t -> 'elt t

The call cons e l is e :: l.

val find_opt : 'elt.('elt -> bool) -> 'elt t -> 'elt option

The call find_opt pred list is None if no element of the list list satisfies the predicate pred; otherwise, it is Some e, where e is the leftmost element in list that satisfies pred. The order of the calls of pred is not specified.

val filter_map : 'src 'dst.('src -> 'dst option) -> 'src list -> 'dst list

The call filter_map f l is the maximal sub-list of l such that the call of function f on its elements is not None. Note: f is called on all elements of l. The order of the calls of f is not specified.

val update : 'elt.('elt -> 'elt option) -> 'elt t -> 'elt t

The call update f l is the list l where the elements e such that f e is Some v have been replaced by v.

val update_with : 'elt.('elt -> bool) -> 'elt -> 'elt t -> 'elt t

The call update_with p d l is the list l where the elements e such that satisfy the predicate p are replaced by d.