package fmlib

  1. Overview
  2. Docs
Functional monadic library

Install

Dune Dependency

Authors

Maintainers

Sources

0.1.0.tar.gz
sha256=0558665285e4d7691e5a80c90ab05a7acb86c09f03ceef6589f150f6d3574573
md5=fb61f4d6e7233cf8d1d71758e6110c1e

doc/fmlib.fmlib_std/Fmlib_std/List/Monadic/index.html

Module List.MonadicSource

Monadic list functions

Parameters

Signature

Sourceval fold_left : ('a -> 'b -> 'b M.t) -> 'a t -> 'b -> 'b M.t

fold_left f lst start leftfolds the function f over the list lst starting with the value start. Continuation of the fold is determined by the bind operator >>= of the monad M. E.g. if the monad M is Option the folding stops as soon as f e acc returns the value None.

     fold_left f [a b c ...] s =
       M.(f a s   >>= fun acc ->
          f b acc >>= fun acc ->
          f c acc >>= fun acc ->
          ...)
Sourceval fold_right : ('a -> 'b -> 'b M.t) -> 'a t -> 'b -> 'b M.t

The same as fold_left just right folding.

     fold_right f [... x y z] s =
     fold_left f (rev [... x y z]) s =
       M.(f z s   >>= fun acc ->
          f y acc >>= fun acc ->
          f x acc >>= fun acc ->
          ...)
Sourceval foldi_left : (int -> 'a -> 'b -> 'b M.t) -> 'a t -> 'b -> 'b M.t

The same as fold_left except that the folding function receives the position of the first argument in the list as an additional argument.

OCaml

Innovation. Community. Security.