jweinst1
5/22/2016 - 7:02 AM

inlinecache.js

//function inline-caching

//returns functions that are built off of arguments, without invoking Function()
/*   var a = FuncDict["+"]
   a
=> [Function]
   var a = FuncDict["+"](5)
   a
=> [Function]
   a(3)
=> 8*/
var OperDict = {
	"+":function(number){
		return function(arg){
			return arg + number;
		};
	},
	"-":function(number){
		return function(arg){
			return arg - number;
		};
	},
	"*":function(number){
		return function(arg){
			return arg * number;
		};
	},
	"/":function(number){
		return function(arg){
			return arg / number;
		};
	},
	"%":function(number){
		return function(arg){
			return arg % number;
		};
	}
};

//
var BoolDict = {
	"==":function(number){
		return function(arg){
			return arg ==- number;
		};
	},
	"!=":function(number){
		return function(arg){
			return arg !== number;
		};
	},
	">":function(number){
		return function(arg){
			return arg > number;
		};
	},
	"<":function(number){
		return function(arg){
			return arg < number;
		};
	},
	">=":function(number){
		return function(arg){
			return arg >= number;
		};
	},
	"<=":function(number){
		return function(arg){
			return arg <= number;
		};
	}
};