dave wrote: > list.delete_if(){ > d = false > tokens.each {|t| # method, args, object > if (! d) > d = true if send(t[0].to_sym, t[1], t[2..-1]) > end > b > } > } > >is there a better way? > > I assume you mean "shorter without being unreadable". Well, it's subjective but...: list.delete_if { tokens.inject(false) {|d,t| # method, args, object d ||= send(t[0], t[1], t[2..-1]) } } That's equivalent functionality, AFAICT, but I'm not sure what you're trying to do. delete_if() passes a parameter to your block (of each individual item). Here, the code will either do nothing, or clear the entire Array. Should the first line be list.delete_if {|t| ? Devin