From: "scooterm@..." Date: 2008-01-16T04:15:00+09:00 Subject: set operations on array of hash var1 = [ {'color'=>'blue','shape'=>'round','flavor'=>'sweet'}, ## 1a {'color'=>'yellow','shape'=>'oblong','flavor'=>'sweet'},## 1b {'color'=>'red','shape'=>'round','flavor'=>'tart'}, ## 1c ]; var2 = [ {'color'=>'orange','shape'=>'round','flavor'=>'tangy'}, ## 2a {'color'=>'red','shape'=>'round','flavor'=>'tart'}, ## 2c ]; puts var1.union(var2); ## (1a..2a) puts var1.intersect(var2); ## (1c) puts var1.notin(var2); ## (1a,1b) Assuming you have two variables v1 and v2 declared as above, is there a way to use the set operations of ruby to do set operations where the elements of the "set" are each a hash? The assumption is two elements are equal iff they both have the exact same keys and the exact same values for those keys. The naive approach of just using "require set" and applying ordinary set operations doesn't seem to work.