Module do_list

The List Monad.

Behaviours: do_applicative, do_foldable, do_functor, do_monad, do_monoid, do_semigroup, do_traversable.

Description

The List Monad.

Data Types

applicative()

applicative(A) = [A] | fn(term(), A) | either(term(), A) | maybe(A)

either()

either(A, B) = {error, A} | {ok, B}

fn()

fn(A, B, C) = fun((A, B) -> C)

fn()

fn(A) = fun(() -> A)

fn()

fn(A, B) = fun((A) -> B)

maybe()

maybe(A) = {just, A} | nothing

monad()

monad(A) = [A] | either(term(), A) | maybe(A)

Function Index

append/2
bind/2
do/2
fmap/2
foldr/3
lift/1
liftA2/2
liftm/2
mempty/0
pure/1
sequence/1
sequencez/1
then/2
traverse/2

Function Details

append/2

append(List1::[A], List2::[A]) -> [A]

bind/2

bind(List::[A], F::fn(A, [B])) -> [B]

do/2

do(List::[A], Fs::[fn(A, [B]) | fn([B])]) -> [B]

fmap/2

fmap(F::fn(A, B), List::[A]) -> [B]

foldr/3

foldr(F::fn(A, B, B), B, List::[A]) -> B

lift/1

lift(F::fn(A, B)) -> fn(monad(A), monad(B))

liftA2/2

liftA2(List1::[fn(A, B)], List2::[A]) -> [B]

liftm/2

liftm(F::function(), Lists::[list()] | [fn(list())]) -> list()

mempty/0

mempty() -> list()

pure/1

pure(A) -> [A]

sequence/1

sequence(List::[applicative(A)]) -> applicative([A])

sequencez/1

sequencez(List::[fn(applicative(A))]) -> applicative([A])

then/2

then(List::list(), F::fn([A])) -> [A]

traverse/2

traverse(F::fn(A, applicative(B)), List::[A]) -> applicative([B])


Generated by EDoc