From: "trans. (T. Onoma)" Date: 2004-12-14T08:55:45+09:00 Subject: Re: Help writing a each_unique method On Monday 13 December 2004 04:12 pm, Andrew Johnson wrote: | One way: | | class Array | def each_combination(k) | n = self.size | return unless (1..n) === k | idx = (0...k).to_a | loop do | yield self.values_at(*idx) | i = k - 1 | i -= 1 while idx[i] == n - k + i | break if i < 0 | idx[i] += 1 | (i + 1 ... k).each {|j| idx[j] = idx[i] + j - i} | end | end | end | | a = %w|a b c d e| | n = 3 | a.each_combination(3) do |c| | p c | end Perfect. Thanks. Think #each_combination is best name? T.