7a6a4940ce5153c39e3e690a89e5b21f9abc72a8
[platform/framework/web/crosswalk-tizen.git] /
1 define(['../array/slice'], function (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     return partial;
22
23 });