You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					65 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					65 lines
				
				1.5 KiB
			| 
											3 years ago
										 | // Generated by LiveScript 1.4.0
 | ||
|  | var apply, curry, flip, fix, over, memoize, slice$ = [].slice, 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, key, arg; | ||
|  |     args = slice$.call(arguments); | ||
|  |     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(); | ||
|  | } |