package fmlib_std
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=387347baf2226d167e70574e889c7483df5f57958c419ce37473650ecaa88810
md5=de772d29c3179a65ac20c09f7c5b14ab
doc/fmlib_std/Fmlib_std/List/index.html
Module Fmlib_std.List
A thin wrapper around Stdlib.List which avoids throwing exceptions and with some additional monadic functions.
In case you need functions from the module List of the ocaml standard library, just use Stdlib.List
List Monad
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.
Modified list functions
val find : ('a -> bool) -> 'a t -> 'a optionfind p l finds an element e in the list l which satisfies p e.
List functions from Stdlib
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 -> intlength l The length of the list l.
filter p l Returns a list with all the elements of l which satisfy the predicate p.
fold_left f s l
Compute f (f ... (f a b1) ... bn-1) bn where l = [b1; ...; bn-1; bn]
like fold_left, just iterate from right to left.
map f l returns a list where all elements of l are mapped by the function f.
mapi f l map all elements of the list l with the mapping function f which receives the index of the element (starting at zero) and the element.
rev_map f l The same as map (rev l). rev_map is tail recursive.
for_all p l checks, if all elements in the list l satisfy the predicate p.
exists p l checks, if some element in the list l satisfies the predicate p.
Additional list functions
split_head_tail l split the list in its head and tail part.
Precondition: The list is not empty.
map_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. If the second list is empty, then there is no element in the list satisfying p.
transpose list_of_rows returns the list of columns.
Preconditions:
- The list of rows must not be empty.
- All rows in the list of rows must not be empty and have the same length.
Example:
transpose [ [1; 2; 3]; [4; 5; 6] ]
=
[ [1; 4]; [2; 5]; [3; 6] ]Monadic list functions
module Monadic (M : Interfaces.MONAD) : sig ... endMonadic list functions