Functional
public interface Applicative<F extends K1, Mu extends Applicative.Mu> extends Functor<F, Mu>
A monad is a monoid in the category of endofunctors.
list.map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…)
map
A monad is a monoid in the category of endofunctors.
list.map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…).map(…)
A monad is a monoid in the category of endofunctors.
flatmap
default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()
Natural Transformations
Natural Transformations
map
(+ 1 1)
category theory
Natural Transformations
A monad is a monoid in the category of endofunctors.
Category Theory
profunctors
Category Theory
flatmap
filter
default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()
() -> a -> b -> (c, d, e) -> f -> a(b)(c)[d](e, f)
profunctors
profunctors
Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int
filter
collection.filter(…).map(…).flatMap(…).filter(…).map(…).filter(…).forEach(…)
filter
collection.filter(…).map(…).flatMap(…).filter(…).map(…).filter(…).forEach(…)
map
upgrades.flatMapIndexed { idx, entry -> entry.map { Pair(it.key.position.add(-2.0*idx, 0.0, 0.0), Pair(it.value, it.value.data)) } }
flatmap
profunctors
interface Mu extends Profunctor.Mu {}
flatmap
filter
functors
interface Mu extends Profunctor.Mu {}
filter
Natural Transformations
flatmap
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)
() -> a -> b -> (c, d, e) -> f -> a(b)(c)[d](e, f)
default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()
Natural Transformations
default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()
filter
upgrades.flatMapIndexed { idx, entry -> entry.map { Pair(it.key.position.add(-2.0*idx, 0.0, 0.0), Pair(it.value, it.value.data)) } }
reduce