bind<F, xs...>::f<ys...> | Partially apply a function to some arguments. |
reverse_bind<F, xs...>::f<ys...> | Partially apply a function to some arguments. |
bind1st<F, C> | = partial<F, C> |
bind2nd<F, C> | = partial<identity, F, C> |
capture<xs...>::f<C, ys...> | = C::f<xs..., ys...> |
capture_v<xs...>::f<C, ys...> | = C::f<xs::value..., ys::value...> |
capture_c<auto... xs> | = capture<val<xs>...> |
capture_v_c<auto... xs>::f<C, ys...> | = C::f<xs..., ys::value...> |
reverse_capture<xs...>::f<C, ys...> | = C::f<ys..., xs...> |
reverse_capture_v<xs...>::f<C, ys...> | = C::f<ys::value..., xs::value...> |
reverse_capture_c<auto... xs> | = reverse_capture<val<xs>...> |
reverse_capture_v_c<auto... xs>::f<C, ys...> | = C::f<ys::value..., xs...> |
cascade<F, Fs...> | Recursively invokes functions to nested typelist of typelists. |
compose_f<template<class...> F, template<class...> Fs...> | Composition of two meta-functions or more. |
compose<F, Fs...> | Composition of two functions or more. |
each<Fs..., C>::f<xs...> | Invokes multiple functions each taking the parameter corresponding to its position. |
eval<auto F, C = identity>::f<xs...> | Invokes a lambda function. |
fix<C>::f<xs...> | Invokes a function computing the fixed point of a function. |
flip<C = listify>::f<x0, x1, xs...> | Invokes a function with its two first arguments reversed. |
identity::f<x> | = x |
if_<Pred, TC, FC = always<false_>>::f<xs...> | A conditional expression. |
invoke_twice<F>::f<xs...> | Invokes twice. |
is_invocable<F, C = identity> | Checks whether F::f<xs...> is invocable. |
lift_t<template<class...> F, C = identity>::f<xs...> | Makes a function from a lazy meta-function. |
lift<template<class...> F, C = identity>::f<xs...> | Makes a function from a meta-function. |
lift_c<template<auto...> F>::f<auto... xs> | = JLN_MP_DCALLF_C_XS(xs, F, xs...) |
lift_v<template<auto...> F>::f<xs...> | = JLN_MP_DCALLF_C_XS(xs, F, xs::value...) |
memoize_call<C, xs...> | Memoization version of call . |
call<C, xs...> | = C::f<xs...> |
call_c<C, auto... xs> | = C::f<xs...> |
dispatch<C, F, xs...> | = call<C, call<F, xs>...> |
indirect_call<FC, F, xs...> | = call<call<FC, xs...>, F, xs...> |
unary_compose_call<C, F, xs...> | = call<C, call<F, xs...>> |
binary_compose_call<C, F0, F1, xs...> | = call<C, call<F0, xs...>, call<F1, xs...>> |
ternary_compose_call<C, F0, F1, F2, xs...> | = call<C, call<F0, xs...>, call<F1, xs...>, call<F2, xs...>> |
call_c | |
indirect_call<FC, F, xs...> | |
dispatch<C, F, xs...> | |
unary_compose_call<C, F, xs...> | |
binary_compose_call<C, F0, F1, xs...> | |
ternary_compose_call<C, F0, F1, F2, xs...> | |
call_t<C, xs...> | = call<C, xs...>::type |
indirect_call_t<FC, F, xs...> | = indirect_call<FC, F, xs...>::type |
dispatch_t<C, F, xs...> | = dispatch<C, F, xs...>::type |
unary_compose_call_t<C, F, xs...> | = unary_compose_call<C, F, xs...>::type |
binary_compose_call_t<C, F0, F1, xs...> | = binary_compose_call<C, F0, F1, xs...>::type |
ternary_compose_call_t<C, F0, F1, F2, xs...> | = ternary_compose_call<C, F0, F1, F2, xs...>::type |
monadic<C, FC = violation> | Invokes FC whether na , otherwise C . |
monadic0<C, FC = violation> | Invokes FC whether any value is na , otherwise C . |
monadic_xs<C, FC = violation> | Invokes FC whether first value is na , otherwise C . |
monadic_if_na<x, template<class...> M, C, FC = violation> | Monadify only if x is na . |
na | |
is_na | = same_as<na> |
violation | = always<na> |
try_<F, TC = identity, FC = violation> | Invokes TC::f<result> whetehr F::f<xs...> is a valid expression
other than na, otherwhise invokes FC::f<xs...> . |
try_or<F, FC> | = try_<F, identity, FC> |
try_<F, TC, FC>::f<xs...> | |
on<Fs..., C>::f<xs...> | Invokes multiple functions each taking the parameter corresponding to its position
(or without parameter whether it does not exist)
then calls C with the results and the rest of the parameters. |
partial<Fs..., C>::f<xs...> | Invokes multiple functions each taking the parameter corresponding to its position
then calls C with the results and the rest of the parameters. |
stop_iteration<_> | |
recurse<F, C = identity>::f<xs...> | Recursively invokes F until stop_iteration . |
recurse_fix<F, C = identity>::f<xs...> | Version of fix that stops if there is stop_iteration
The first invocation uses F::f<F, xs...> , the following
invocations F::f<F, result>
|
infinite_recurse<F, C = identity>::f<x> | Recursively invokes F until the result no longer changes
|
infinite_recurse_fix<F, C = identity>::f<xs...> | Mix of fix and infinite_recurse . |
tee<Fs..., C>::f<xs...> | Invokes multiple functions passing all parameters to each. |