package alba
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=4817038301d3e45bac9edf7e6f2fc8bf0a6d78e76e02ad7ea33ef69bcc17df3b
md5=25234357587126685d64f16236167937
doc/alba.fmlib/Fmlib/List/index.html
Module Fmlib.List
A thin wrapper around Stdlib.List which avoids throwing exceptions and with some additional monadic functions.
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.
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.
List functions from Stdlib
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 -> intAdditional list functions
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.
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 : Module_types.MONAD) : sig ... endMonadic list functions