createSelector10<S, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, T> function
Selector<S, T>
createSelector10<S, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, T>(
- Selector<
S, R1> selector1, - Selector<
S, R2> selector2, - Selector<
S, R3> selector3, - Selector<
S, R4> selector4, - Selector<
S, R5> selector5, - Selector<
S, R6> selector6, - Selector<
S, R7> selector7, - Selector<
S, R8> selector8, - Selector<
S, R9> selector9, - Selector<
S, R10> selector10, - T combiner(
- R1,
- R2,
- R3,
- R4,
- R5,
- R6,
- R7,
- R8,
- R9,
- R10
- {T Function(R1, R2, R3, R4, R5, R6, R7, R8, R9, R10) memoize(
- T (
- R1,
- R2,
- R3,
- R4,
- R5,
- R6,
- R7,
- R8,
- R9,
- R10
- T (
Create a memoized selector by combining ten selectors. It will cache the
result of the combiner
function, and only recompute when the provided
selectors deliver new results.
A complete example can be seen as part of the Selector documentation.
Implementation
Selector<S, T> createSelector10<S, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, T>(
Selector<S, R1> selector1,
Selector<S, R2> selector2,
Selector<S, R3> selector3,
Selector<S, R4> selector4,
Selector<S, R5> selector5,
Selector<S, R6> selector6,
Selector<S, R7> selector7,
Selector<S, R8> selector8,
Selector<S, R9> selector9,
Selector<S, R10> selector10,
T Function(R1, R2, R3, R4, R5, R6, R7, R8, R9, R10) combiner, {
T Function(R1, R2, R3, R4, R5, R6, R7, R8, R9, R10) Function(
T Function(R1, R2, R3, R4, R5, R6, R7, R8, R9, R10))?
memoize,
}) {
final memoized = (memoize ?? memo10)(combiner);
return (S state) {
return memoized(
selector1(state),
selector2(state),
selector3(state),
selector4(state),
selector5(state),
selector6(state),
selector7(state),
selector8(state),
selector9(state),
selector10(state),
);
};
}