Erik Michaels-Ober wrote: > Second, I would argue that there should be + (plus), - (minus), and & > (ampersand) methods on hashes, that function the same way they do for arrays > (concatenation, difference, and intersection, respectively). Hash is a very flexible citizen, though. It plays many roles. So how does this come out: {0=>1, 1=>0} - {1=>1} = ? {0=>1, 1=>0} # if you look at a hash as a set of pairs {0=>0} # if you look at this hash as another way of expressing # the same indexed collection as the array [1,0], and use # Array#- {0=>1} # if you look at a hash as a set of keys, with the value, as # a boolean, representing membership or non-membership in the set {0=>1, 1=>-1} # maybe, if you look at a hash as a mathematical function And then there are "Bags": {1=>6} - {1=>1} == {1=>5} -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407