EasyPythonJavaScriptTypeScript
Compose
Functional ProgrammingHigher-Order Functions
compose applies functions right-to-left: the last function runs first.
// dirty — manual nesting
const result = double(addOne(square(x)));
// clean — compose
const transform = compose(double, addOne, square);
transform(3); // double(addOne(square(3))) = double(addOne(9)) = double(10) = 20Implement compose(...fns) that returns a function applying the array of functions right-to-left.
solve(x, label) dispatches to a predefined composition:
'double_addOne'→compose(double, addOne)'square_double'→compose(square, double)'addOne_square_double'→compose(addOne, square, double)
Sample tests
Test #1compose(double, addOne)(5) = double(6) = 12
Input: [5,"double_addOne"]
Output: 12
Test #2compose(square, double)(3) = square(6) = 36
Input: [3,"square_double"]
Output: 36
Test #3compose(addOne, square, double)(2) = addOne(square(4)) = 17
Input: [2,"addOne_square_double"]
Output: 17