negate boolean function in javascript -
how negate boolean function?
such using like:
 _.filter = function(collection, test) {     var tmp = []     _.each(collection, function(value){       if (test(value)) {         tmp.push(value);       }     })     return tmp   };     var bag = [1,2,3]; var evens = function(v) { return v % 2 === 0}; this wrong:
// returns opposite of evens var result = _.filter(bag, !evens); result:
[1,3] 
try making function returns function:
function negate(other) {   return function(v) {return !other(v)}; }; used this:
var result = _.filter(bag, negate(evens)); or declare function when call it:
var result = _.filter(bag, function(v) {return evens(v)});