Fmlib.ListA thin wrapper around Stdlib.List which avoids throwing exceptions and with some additional monadic functions.
val return : 'a -> 'a treturn a makes a singleton list with the element a.
l >>= f applies the function f to all elements of the list l and concatenates all lists.
f >=> g composes the two monadic functions f and g.
flst <*> lst is equivalent to flst >>= fun f -> map f lst i.e. it maps all functions contained in flst over the list lst and then concatenates the results.
join is the same as concat.
val find : ('a -> bool) -> 'a t -> 'a optionfind p l finds an element e in the list l which satisfies p e.
Split the list in its head and tail parts. Requires that the list is not empty.
val head_strict : 'a t -> 'aGet the head of the list. Requires that the list is not empty.
val nth_strict : int -> 'a t -> 'aith_strict n list returns the nth element of the list. Precondition: list has at least n + 1 elements.
val nth : int -> 'a t -> 'a optionith_strict n list returns the nth element of the list if the list is long enough. Otherwise None is returned.
append a b prepends the lists a in front of the list b. Synonym a @ b.
concat ll concatenates all lists contained in the list of lists ll.
rev_append a b prepends the lists rev a in front of the list b.
val length : 'a t -> intmap_and_filter f list maps the list with f and removes the element for which f e = None.
split_at p lst scans the list until it finds the first element satisfying p and returns the prefix and the remainder starting at the encountered element.
transpose list_of_rows returns the list of columns.
Preconditions:
Example:
transpose [ [1; 2; 3]; [4; 5; 6] ]
=
[ [1; 4]; [2; 5]; [3; 6] ]module Monadic (M : Module_types.MONAD) : sig ... endMonadic list functions