1 // Generated by LiveScript 1.4.0
2 var apply, curry, flip, fix, over, memoize, slice$ = [].slice, toString$ = {}.toString;
3 apply = curry$(function(f, list){
4 return f.apply(null, list);
9 flip = curry$(function(f, x, y){
15 return f(g(g)).apply(null, arguments);
19 return f(g(g)).apply(null, arguments);
23 over = curry$(function(f, g, x, y){
26 memoize = function(f){
31 args = slice$.call(arguments);
33 var i$, ref$, len$, results$ = [];
34 for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) {
36 results$.push(arg + toString$.call(arg).slice(8, -1));
40 return memo[key] = key in memo
42 : f.apply(null, args);
53 function curry$(f, bound){
55 _curry = function(args) {
56 return f.length > 1 ? function(){
57 var params = args ? args.concat() : [];
58 context = bound ? context || this : this;
59 return params.push.apply(params, arguments) <
60 f.length && arguments.length ?
61 _curry.call(context, params) : f.apply(context, params);