spreadOver Takes a variadic function and returns a function that accepts an array of arguments. Use a closure and the spread operator (...) to map the array of arguments to the inputs of the function. const spreadOver = fn => argsArr => fn(...argsArr); const arrayMax = spreadOver(Math.max); arrayMax([1, 2, 3]); // 3