Skip to content

Instantly share code, notes, and snippets.

@vlad-bezden
Created August 2, 2016 01:15
Show Gist options
  • Save vlad-bezden/4fb898d48f47e604e5263eb7edf5de1c to your computer and use it in GitHub Desktop.
Save vlad-bezden/4fb898d48f47e604e5263eb7edf5de1c to your computer and use it in GitHub Desktop.
Function Composition

Function Composition

Example on how to create own compose function and how to use it. Please notice that the function3 parameter was applied first? This is very important. Functions are applied from right to left.

A Pen by Vlad Bezden on CodePen.

License.

'use strict'
Function.prototype.compose = function(prevFunc) {
const nextFunc = this;
return function() {
return nextFunc.call(this, prevFunc.apply(this, arguments));
}
}
function function1(a) {
return a + ' 1';
}
function function2(b) {
return b + ' 2';
}
function function3(c) {
return c + ' 3';
}
const composition = function3.compose(function2).compose(function1);
console.log(composition('count'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>
<script src="https://cdn.jsdelivr.net/lodash/4.14.1/lodash.fp.min.js"></script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment