|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Generated by LiveScript 1.6.0
- var apply, curry, flip, fix, over, memoize, toString$ = {}.toString;
- apply = curry$(function(f, list){
- return f.apply(null, list);
- });
- curry = function(f){
- return curry$(f);
- };
- flip = curry$(function(f, x, y){
- return f(y, x);
- });
- fix = function(f){
- return function(g){
- return function(){
- return f(g(g)).apply(null, arguments);
- };
- }(function(g){
- return function(){
- return f(g(g)).apply(null, arguments);
- };
- });
- };
- over = curry$(function(f, g, x, y){
- return f(g(x), g(y));
- });
- memoize = function(f){
- var memo;
- memo = {};
- return function(){
- var args, res$, i$, to$, key, arg;
- res$ = [];
- for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) {
- res$.push(arguments[i$]);
- }
- args = res$;
- key = (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) {
- arg = ref$[i$];
- results$.push(arg + toString$.call(arg).slice(8, -1));
- }
- return results$;
- }()).join('');
- return memo[key] = key in memo
- ? memo[key]
- : f.apply(null, args);
- };
- };
- module.exports = {
- curry: curry,
- flip: flip,
- fix: fix,
- apply: apply,
- over: over,
- memoize: memoize
- };
- function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
- }
|