JavaScript: Perform left-to-right function composition
JavaScript fundamental (ES6 Syntax): Exercise-67 with Solution
Left-to-Right Function Composition
Write a JavaScript program to perform left-to-right function composition.
- Use Array.prototype.reduce() to perform left-to-right function composition.
- The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.
Sample Solution:
JavaScript Code:
//#Source https://bit.ly/2neWfJ2
// Define a function 'composeRight' that takes any number of functions as arguments and returns a new function.
const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
// Define functions 'add' and 'square'.
const add = (x, y) => x + y;
const square = x => x * x;
// Create a new function 'addAndSquare' by composing 'add' and 'square' in the right-to-left order.
const addAndSquare = composeRight(add, square);
// Example usage:
console.log(addAndSquare(1, 2)); // Output 9
console.log(addAndSquare(3, 2)); // Output 25
Output:
9 25
Visual Presentation:
Flowchart:

Live Demo:
See the Pen javascript-basic-exercise-67-1 by w3resource (@w3resource) on CodePen.
For more Practice: Solve these Related Problems:
- Write a JavaScript program that performs left-to-right function composition, passing the result of one function to the next.
- Write a JavaScript function that uses Array.reduce() to compose functions from left to right.
- Write a JavaScript program that builds a pipeline of functions where each function's output is fed to the next sequentially.
Go to:
PREV : Right-to-Left Function Composition.
NEXT : Converge Function with Branching Functions.
Improve this sample solution and post your code through Disqus
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.