partial
by Artem
JavaScript
'use strict';
function partialLeft(f) {
const args = Array.from(arguments);
return function() {
return f.apply(this, args.slice(1).concat(Array.from(arguments)));
};
}
function partialRight(f) {
const args = Array.from(arguments);
return function() {
return f.apply(this, Array.from(arguments).concat(args.slice(1)));
};
}
function foo(x, y, z) {
console.log(x, y, z);
}
partialLeft(foo, 1, 2)(3);
partialRight(foo, 1, 2)(3);