Functional

The λ-cube sees all

flatmap

(+ 1 1)

>>==

map

collection.filter(…).map(…).flatMap(…).filter(…).map(…).filter(…).forEach(…)

flatmap

std::reduce(std::execution::seq, v.cbegin(), v.cend())

std::reduce(std::execution::seq, v.cbegin(), v.cend())

list.map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…)

profunctors

(+ 1 1)

public <A, B, C, D> FunctionType<App2<Grate.Mu<A2, B2>, A, B>, App2<Grate.Mu<A2, B2>, C, D>> dimap(final Function<C, A> g, final Function<B, D> h)

filter

The λ-cube sees all

filter

profunctors

filter

std::reduce(std::execution::seq, v.cbegin(), v.cend())

reduce

filter

Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int

Category Theory

flatmap

filter

flatmap

map

filter

profunctors

std::reduce(std::execution::seq, v.cbegin(), v.cend())

filter

filter

Natural Transformations

forall void a n m. MonadEffect n => MonadAff m => MonadEffect m => Plus m => m a -> n (Tuple (m a) (m void))

map

profunctors

Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int

>>==

interface Mu extends Profunctor.Mu {}

map

Natural Transformations

std::reduce(std::execution::seq, v.cbegin(), v.cend())

μ

Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int

() -> a -> b -> (c, d, e) -> f -> a(b)(c)[d](e, f)

λ

filter

flatmap

Category Theory

functors