.
This commit is contained in:
		
							
								
								
									
										69
									
								
								qwen/nodejs/node_modules/prelude-ls/lib/Func.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								qwen/nodejs/node_modules/prelude-ls/lib/Func.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
// 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();
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user