From: Christer Nilsson Date: 2005-12-14T08:34:50+09:00 Subject: Re: Array.invert Simon wrote: > > i will give you two: > > class Array > def invert > zip([*(0...size)]).inject([]){|s, b| (b.first || []).each{|i| (s[i] > ||= []) << b.last}; s} > end > end > > or (even worse): > > class Array > def invert > Array.new(flatten.compact.max.succ){|i| > zip([*(0...size)]).find_all{|b, j| b && b.include?(i)}.transpose[1]} > end > end I didn't know invert was so complex that ten keywords were needed! The more keywords, the more cycles. My original old fashioned fortran style polyliner is still quickest :-) Christer -- Posted via http://www.ruby-forum.com/.