a31dc129a571a8e6de3a9759244605b8bae4b7b3
[platform/framework/web/crosswalk-tizen.git] /
1 var slice = require('../array/slice');
2
3     /**
4      * Creates a partially applied function.
5      */
6     function partial(f) {
7         var as = slice(arguments, 1);
8         return function() {
9             var args = as.concat(slice(arguments));
10             for (var i = args.length; i--;) {
11                 if (args[i] === partial._) {
12                     args[i] = args.splice(-1)[0];
13                 }
14             }
15             return f.apply(this, args);
16         };
17     }
18
19     partial._ = {};
20
21     module.exports = partial;
22
23