Module BatList.Exceptionless

module Exceptionless: sig .. end

Exceptionless counterparts for error-raising operations


val find : ('a -> bool) -> 'a list -> 'a option

find p l returns Some x where x is the first element of l such as p x returns true or None if such an element has not been found.

val rfind : ('a -> bool) -> 'a list -> 'a option

rfind p l returns Some x where x is the last element of l such that p x returns true or None if such element as not been found.

val findi : (int -> 'a -> bool) -> 'a list -> (int * 'a) option

findi p l returns Some (i, ai) where ai and i are respectively the first element of l and its index, such that p i ai is true, or None if no such element has been found.

val split_at : int -> 'a list -> [ `Invalid_argument of string | `Ok of 'a list * 'a list ]

Whenever n is inside of l size bounds, split_at n l returns Ok(l1,l2), where l1 contains the first n elements of l and l2 contains the others. Otherwise, returns `Invalid_argument n.

val at : 'a list -> int -> [ `Invalid_argument of string | `Ok of 'a ]

If n is inside the bounds of l, at l n returns Ok x, where x is the n-th element of the list l. Otherwise, returns Error
      (`Invalid_argument(n))
.

val assoc : 'a -> ('a * 'b) list -> 'b option

assoc a l returns Some b where b is the value associated with key b in the list of pairs l. That is, assoc a [ ...; (a,b); ...] = Some b if (a,b) is the leftmost binding of a in list l. Return None if there is no value associated with a in the list l.

val assoc_inv : 'b -> ('a * 'b) list -> 'a option

assoc_inv b l returns Some a where a is the key associated with value b in the list of pairs l. That is, assoc b [ ...; (a,b); ...] = Some a if (a,b) is the leftmost binding of a in list l. Return None if there is no key associated with b in the list l.

val assq : 'a -> ('a * 'b) list -> 'b option

As BatList.Exceptionless.assoc but with physical equality.

val find_map : ('a -> 'b option) -> 'a list -> 'b option

find_map f xs returns Some y such that x is the first element of the list where f x returns Some y. It returns None if no such element exists.

val hd : 'a list -> 'a option

hd l returns Some x such that x is the first element of the given list l. Returns None if list l is empty.

val tl : 'a list -> 'a list option

tl l returns Some x such that x is the given list l without its first element. Returns None if list l is empty.

val last : 'a list -> 'a option

last l returns either Some x where x is the last element of the list, or None if the list is empty. This function takes linear time.

val reduce : ('a -> 'a -> 'a) -> 'a list -> 'a option

reduce f h::t is Some (fold_left f h t) and reduce f [] is None.

val min_max : ?cmp:('a -> 'a -> int) -> 'a list -> ('a * 'a) option

min_max l returns either Some(s, l) where s and l are respectively the smallest and biggest element of l as judged by Pervasives.compare (by default) or None if l is empty. You can provide another comparison function via the optional cmp parameter.

val max : ?cmp:('a -> 'a -> int) -> 'a list -> 'a option

max l returns either Some x where x is the largest value of the list as judged by Pervasives.compare (by default) or None is the list is empty. You can provide another comparison function via the optional cmp parameter.

val min : ?cmp:('a -> 'a -> int) -> 'a list -> 'a option

min l returns either Some x where x is the smallest value of the list as judged by Pervasives.compare or None is the list is empty. You can provide another comparison function via the optional cmp parameter.