javascript compose function

JavaScript
const compose = (...funcs) => args => funcs.reduceRight((arg, fn) => fn(arg), args);

// Or if you like in ES5
function compose(...funcs) 
{
	return function(args)
    {
    	return funcs.reduceRight( (arg, fn) => fn(arg), args);
    }
}
Curried Function
// Non-curried
function add(a, b, c) {
  return a + b + c
}

add(1, 2, 3)
//-> 6

// Curried
function addd(a) {
  return function (b) {
    return function (c) {
      return a + b + c
    }
  }
}

addd(1)(2)(3)
//-> 6
Source

Also in JavaScript: