Test case details

Preparation Code

const len = 10; const arr = [...Array(len).keys()]; const farr1 = arr.map(i => (n) => n + i); const farr2 = arr.slice(0, -1).map(i => (n) => n + i); farr2.push((n) => n + len - 1); const farr3 = []; for (let i = 0; i< arr.length; i++) { farr3[i] = (n) => n + i; } const farr4 = []; for (let i = 0; i< arr.length - 1; i++) { farr4[i] = (n) => n + i; } farr4.push((n) => n + len - 1); const exec = (arr) => { let sum = 0; for (let i = 0; i < arr.length; i++) { sum = arr[i](sum); } return sum } const curr = arr.reduce((f, e, i) => { if (i === 0) { return (n) => n + e } return (n) => f(n) + e }, undefined);

Test cases

Test #1

exec(farr1);

Test #2

exec(farr2);

Test #3

exec(farr3);

Test #4

exec(farr4);

Test #5

curr(0);