bower
Version:
The browser package manager
24 lines (19 loc) • 529 B
JavaScript
define(['../array/slice'], function (slice) {
/**
* Creates a partially applied function.
*/
function partial(f) {
var as = slice(arguments, 1);
return function() {
var args = as.concat(slice(arguments));
for (var i = args.length; i--;) {
if (args[i] === partial._) {
args[i] = args.splice(-1)[0];
}
}
return f.apply(this, args);
};
}
partial._ = {};
return partial;
});