|
|
- // 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();
- }
|