From: Gavin Kistner Date: 2004-07-14T00:08:37+09:00 Subject: Re: Ruby quickies and useful idioms On Jul 12, 2004, at 1:47 AM, Martin DeMello wrote: > I've found this useful on several occasions > > class Array > include EnumerableOperator > def all_pairs > a = size-1 > for i,j in product(0..a, 0..a, proc {|i,j| i < j}) > yield at(i), at(j) > end > end > end It's too early in the morning for me to decode this. Is this the same as my Array#each_unique_pair method documented here: http://phrogz.net/RubyLibs/rdoc/classes/Array.html#M000061 If so, the implementation which doesn't require anything else is simply: class Array def each_unique_pair self.each_with_index{ |a,i| self[(i+1)..-1].each{ |b| yield a,b } } end end