/** @module function/parallel.ts */
import { Function1 } from '../helper-types'
export function parallel( ...funcs: [Function1] ): ( arg: Input ) => [A]
export function parallel( ...funcs: [Function1, Function1] ): ( arg: Input ) => [A, B]
export function parallel( ...funcs: [Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]
export function parallel( ...funcs: [Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1, Function1] ): ( arg: Input ) => [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
/**
* Takes array of functions, array of arguments, and returns array of functions with arguments applied.
* :: (...f) -> (...a) -> [ f1(...a),f2(...a),...]
*/
export function parallel( ...funcs ) {
return ( ...args ) => funcs.map( ( func ) => func.apply( func, args ) )
}
export default parallel