Module ExtLib.List


module List: ExtList.List


New functions

val init : int -> (int -> 'a) -> 'a list
Similar to Array.init, init n f returns the list containing the results of (f 0),(f 1).... (f (n-1)). Raise Invalid_arg "ExtList.init" if n < 0.
val make : int -> 'a -> 'a list
Similar to String.make, make n x returns a list containing n elements x.
val first : 'a list -> 'a
Returns the first element of the list, or raise Empty_list if the list is empty (similar to hd).
val last : 'a list -> 'a
Returns the last element of the list, or raise Empty_list if the list is empty. This function takes linear time.
val iteri : (int -> 'a -> 'b) -> 'a list -> unit
iteri f l will call (f 0 a0);(f 1 a1) ... (f n an) where a0..an are the elements of the list l.
val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
mapi f l will build the list containing (f 0 a0);(f 1 a1) ... (f n an) where a0..an are the elements of the list l.
val rfind : ('a -> bool) -> 'a list -> 'a
rfind p l returns the last element x of l such as p x returns true or raises Not_found if such element as not been found.
val find_exc : ('a -> bool) -> exn -> 'a list -> 'a
find_exc p e l returns the first element of l such as p x returns true or raises e if such element as not been found.
val findi : (int -> 'a -> bool) -> 'a list -> int * 'a
findi p e l returns the first element ai of l along with its index i such that p i ai is true, or raises Not_found if no such element has been found.
val unique : ?cmp:('a -> 'a -> bool) -> 'a list -> 'a list
unique cmp l returns the list l without any duplicate element. Default comparator ( = ) is used if no comparison function specified.
val filter_map : ('a -> 'b option) -> 'a list -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list
filter_map f l call (f a0) (f a1).... (f -> 'b list