Functional

filter

filter

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

map

functors

default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()

flatmap

flatmap

flatmap

reduce

profunctors

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

public interface Applicative<F extends K1, Mu extends Applicative.Mu> extends Functor<F, Mu>

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

functors

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

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

functors

filter

public interface Applicative<F extends K1, Mu extends Applicative.Mu> extends Functor<F, Mu>

category theory

>>==

The λ-cube sees all

>>==

functors

profunctors

upgrades.flatMapIndexed { idx, entry -> entry.map { Pair(it.key.position.add(-2.0*idx, 0.0, 0.0), Pair(it.value, it.value.data)) } }

default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()

flatmap

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

filter

flatmap

μ

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

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

filter

profunctors

Natural Transformations

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)) } }

Category Theory

map

profunctors

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

default Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Function<T16, R>> curry15()

interface Mu extends Profunctor.Mu {}

filter

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

functors

filter