list: operations on lists
value list_length : 'a list -> int
-
Return the length (number of elements) of the given list.
value prefix @ : 'a list -> 'a list -> 'a list
-
List concatenation.
value hd : 'a list -> 'a
-
Return the first element of the given list. Raise
Failure "hd" if the list is empty.
value tl : 'a list -> 'a list
-
Return the given list without its first element. Raise
Failure "tl" if the list is empty.
value rev : 'a list -> 'a list
-
List reversal.
value map : ('a -> 'b) -> 'a list -> 'b list
-
map f [a1; ...; an] applies function f to a1, ..., an,
and builds the list [f a1; ...; f an]
with the results returned by f.
value do_list : ('a -> unit) -> 'a list -> unit
-
do_list f [a1; ...; an] applies function f in turn to
a1; ...; an, discarding all the results. It is equivalent to
begin f a1; f a2; ...; f an; () end.
value it_list : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-
it_list f a [b1; ...; bn] is f (... (f (f a b1) b2) ...) bn.
value list_it : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-
list_it f [a1; ...; an] b is f a1 (f a2 (... (f an b) ...)).
value map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-
map2 f [a1; ...; an] [b1; ...; bn] is [f a1 b1; ...; f an bn].
Raise Invalid_argument "map2" if the two lists have
different lengths.
value do_list2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-
do_list2 f [a1; ...; an] [b1; ...; bn] calls in turn
f a1 b1; ...; f an bn, discarding the results.
Raise Invalid_argument "do_list2" if the two lists have
different lengths.
value it_list2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-
it_list2 f a [b1; ...; bn] [c1; ...; cn] is
f (... (f (f a b1 c1) b2 c2) ...) bn cn.
Raise Invalid_argument "it_list2" if the two lists have
different lengths.
value list_it2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-
list_it2 f [a1; ...; an] [b1; ...; bn] c is
f a1 b1 (f a2 b2 (... (f an bn c) ...)).
Raise Invalid_argument "list_it2" if the two lists have
different lengths.
value flat_map : ('a -> 'b list) -> 'a list -> 'b list
-
flat_map f [l1; ...; ln] is (f l1) @ (f l2) @ ... @ (f ln).
value for_all : ('a -> bool) -> 'a list -> bool
-
for_all p [a1; ...; an] is (p a1) & (p a2) & ... & (p an).
value exists : ('a -> bool) -> 'a list -> bool
-
exists p [a1; ...; an] is (p a1) or (p a2) or ... or (p an).
value mem : 'a -> 'a list -> bool
-
mem a l is true if and only if a is structurally equal (see
module eq) to an element of l.
value memq : 'a -> 'a list -> bool
-
memq a l is true if and only if a is physically equal (see
module eq) to an element of l.
value except : 'a -> 'a list -> 'a list
-
except a l returns the list l where the first element
structurally equal to a has been removed.
The list l is returned unchanged if it does not contain a.
value exceptq : 'a -> 'a list -> 'a list
-
Same as except, with physical equality instead of structural
equality.
value subtract : 'a list -> 'a list -> 'a list
-
subtract l1 l2 returns the list l1 where all elements
structurally equal to one of the elements of l2
have been removed.
value union : 'a list -> 'a list -> 'a list
-
union l1 l2 appends before list l2 all the elements of list l1
that are not structurally equal to an element of l2.
value intersect : 'a list -> 'a list -> 'a list
-
intersect l1 l2 returns the list of the elements of l1 that
are structurally equal to an element of l2.
value index : 'a -> 'a list -> int
-
index a l returns the position of the first element of list l
that is structurally equal to a. The head of the list has
position 0. Raise Not_found if a is not present in l.
value assoc : 'a -> ('a * 'b) list -> 'b
-
assoc a l returns the value associated with key a in the list of
pairs l. That is,
assoc a [ ...; (a,b); ...] = b
if (a,b) is the leftmost binding of a in list l.
Raise Not_found if there is no value associated with a in the
list l.
value assq : 'a -> ('a * 'b) list -> 'b
-
Same as assoc, but use physical equality instead of structural
equality to compare keys.
value mem_assoc : 'a -> ('a * 'b) list -> bool
-
Same as assoc, but simply return true if a binding exists,
and false if no bindings exist for the given key.