From: Robert Klemme Date: 2008-12-07T21:14:39+09:00 Subject: [ruby-core:20406] Pair methods for Array? All, is it just me or does someone else believe these are reasonable methods to have in Array? Or do they happen to exist somewhere already? Kind regards robert #!/bin/env ruby class Array # these are all O(n^2) def all_pairs? (0 ... size - 1).each do |p1| (p1 + 1 ... size).each do |p2| return false unless yield self[p1], self[p2] end end true end def any_pair? (0 ... size - 1).each do |p1| (p1 + 1 ... size).each do |p2| return true if yield self[p1], self[p2] end end false end def no_pair? (0 ... size - 1).each do |p1| (p1 + 1 ... size).each do |p2| return false if yield self[p1], self[p2] end end true end end test = [2,4,8] puts test.all_pairs? {|x,y| x % 2 == y % 2}, test.any_pair? {|x,y| (x - y).abs == 4}, test.no_pair? {|x,y| (x * y) % 3 == 0} -- remember.guy do |as, often| as.you_can - without end