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