module Generic_util_list:sig..end
val (-<) : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b
val foldr : ('a -> 'b -> 'b) -> 'b -> 'a list -> 'bfoldr c n l = List.fold_right c l nval cons : 'a -> 'a list -> 'a listcons is useful when we want partial application of the list constructor.val from_to : int -> int -> int listfrom_to a b = [a; a+1; ... ; b]val replicate : int -> 'a -> 'a listreplicate n x = [x; x; ...; x] with x repeated n times.val with_indices : 'a list -> (int * 'a) listwith_indices [x0; x1; ...; xn] = [(0,x0); (1,x1); ... ; (n, xn)]val find_index : ('a -> bool) -> 'a list -> intfind_index p xs is the index of the first element of xs for which the predicate p is true:
p (List.nth xs (find_index p xs)) == true
and (n < find_index p xs ==> p (List.nth xs n) == falseNot_found if no element verifies the predicateval index : 'a -> 'a list -> intindex x xs is the index of the first element of xs equal to x.
index x = find_index (fun y -> x = y)
List.nth xs (index x xs) = x
Uses Pervasives.(=)
Raises Not_found if x is not an element of the list
val find_opt : ('a -> bool) -> 'a list -> 'a optionfindOpt p xs returns Some x if x is the first
element of the list xs verifying the predicate p. or
None if no element verifies the predicate. This
function is total.take_while p l returns the longest prefix of l whose
elements make p true.val take_while : ('a -> bool) -> 'a list -> 'a listdrop_while p l returns the suffix of l after removing
the longest prefix of l whose elements make p true.
take_while p l @ drop_while p l = l
val drop_while : ('a -> bool) -> 'a list -> 'a listfind_some f l applies an option-valued function f to
the elements of a list l and returns the first element that is not None
or None if no such element exists.val find_some : ('a -> 'b option) -> 'a list -> 'b optionfilter_some f l applies f to every element x of the
list l yielding either None which is thrown away, or
Some y in which case y is kept.
filter p = filter_some (fun x -> if p x then Some x else None)
val filter_some : ('a -> 'b option) -> 'a list -> 'b list
val set : int -> 'a -> 'a list -> 'a listset i x xs computes a new list where the i-th element
of xs is x, the rest of the list is unchanged. Counting
from 0.
If i is greater than the length of the list or if i
is negative, then the original list is returned.
val concat_map : ('a -> 'b list) -> 'a list -> 'b listconcat_map f x = concat -< map f
concat_map is the flipped bind operator of the list monadval monoid : 'a list Monoid.monoid
val monad : App.list' Monad.monad
exception Insert_duplicate
Generic_util_list.sl_insert when trying to insert an element that is already in the list.val sl_insert : ('a -> 'a -> bool) -> 'a -> 'a list -> 'a listsl_insert leq x xs inserts the new element x in the sorted list xs using the pre-order <=.Insert_duplicate when x is already in xs.exception Match_list_failure
Generic_util_list.match_list.val match_list : ('a -> 'b) -> 'a list -> 'bmatch_list tries to apply a function to the first
element of a list. If a Match_failure is caught, we
proceed with the rest of the list. If no more element is available (empty list),
the exception Match_list_failure is raised.Match_list_failure if the list is empty or if all the elements of the list
caused a Match_failure.val traverse : 'a Applicative.T.applicative ->
('b -> ('c, 'a) App.T.app) ->
'b list -> ('c list, 'a) App.T.app
val sequence : 'a Applicative.T.applicative ->
('b, 'a) App.T.app list -> ('b list, 'a) App.T.app