From: Louis J Scoras Date: 2006-11-01T00:50:15+09:00 Subject: Re: !x.include? y I like to modifiy Proc for making definining methods like this easier: class Proc def inverse self.class.new {|*args| !self.call(*args)} end end Then of course you could continue down the path Marcel was suggesting: class Array def select!(&block) delete_if &block.inverse end alias_method :find_all!, :select! end class Hash def select!(&block) delete_if &block.inverse end alias_method :find_all!, :select! end Actually, now this makes me want to think about what other kind of higher order goodies could be added to Proc =) -- Lou.