that does this next:
*/
const func = (a, b, c, d, e) => a + b + c + d + e;
const hof = yourFunction(func);
console.log(hof(1, 2, 3, 4, 5)); // 15
console.log(hof(2, 3, 4)(5, 6)); // 20
console.log(hof(3, 4)(5, 6)(7)); // 25
console.log(hof(4, 5)(6)(7, 8)); // 30
console.log(hof(5)(6)(7)(8)(9)); // 35
Guys I am not able to understand hof argument part
Hof stands for higher order functions
const ArityWithCallback = function (callback) { // callback length is number of arguments // that callback can accept before // it has to be called const arity = callback.length; const storage = Array.isArray(this) ? this : []; if (arity === 0) { return callback; } const acceptArity = (...args) => { storage.push(...args); if (storage.length < arity) { return ArityWithCallback.call(storage, callback); } // calculation const result = callback(...storage.slice(0, arity)); // storage cleanup storage.length = 0; return result; }; return acceptArity; }; const func = (a, b, c, d, e) => a + b + c + d + e; const hof = ArityWithCallback(func); console.log(hof(1, 2, 3, 4, 5)); // 15 console.log(hof(2, 3, 4)(5, 6)); // 20 console.log(hof(3, 4)(5, 6)(7)); // 25 console.log(hof(4, 5)(6)(7, 8)); // 30 console.log(hof(5)(6)(7)(8)(9)); // 35 https://gist.github.com/wentout/02bd3fd6188c014e4947e36321a816d8
Обсуждают сегодня