Function Composition Lab
In this lab, you will be working on creating a function composition from an array of functions using ESM (ECMAScript Modules) import/export. The goal is to implement a
compose function that takes an array of functions
[f1, f2, f3, ..., fn] as input, and returns a new function
fn that represents the composition of all the given functions.
The function composition of
[f(x), g(x), h(x)] is given by
fn(x) = f(g(h(x))).
The function composition of an empty list of functions is the identity function
f(x) = x.
You may assume that each function in the array accepts one integer as input and returns one integer as output.
Here are some examples to help you understand the problem:
const fn = compose([x => x + 1, x => x * x, x => 2 * x]) fn(4) // 65
Evaluating from right to left ... Starting with x = 4. 2 * (4) = 8 (8) * (8) = 64 (64) + 1 = 65
const fn = compose([x => 10 * x, x => 10 * x, x => 10 * x]) fn(1) // 1000
Evaluating from right to left ... 10 * (1) = 10 10 * (10) = 100 10 * (100) = 1000
const fn = compose() fn(42) // 42
The composition of zero functions is the identity function.
-1000 <= x <= 1000
0 <= functions.length <= 1000
- All functions accept and return a single integer
Make sure to default export any functions or variables that need to be accessed in your code, as the evaluation script requires those exports to test your implementation.