Jeffrey Schwab wrote: > Daniel Berger wrote: >> Ryan Davis wrote: >>> On Nov 1, 2006, at 12:25 PM, Daniel Berger wrote: >>> >>>> irb(main):002:0> Set[1,2,3] ^ Set[3,4,5,5] >>>> => #<Set: {5, 1, 2, 4}> >>>> >>>> Ok, looks good. >>>> >>>> irb(main):003:0> Set[1,2,3] ^ [3,4,5,5] >>>> => #<Set: {1, 2, 4}> >>>> >>>> What?! I'm confused. Do I need a refresher in Set theory or something? >>> It is the way it is implemented... subsequent 5's will toggle it on >>> and off. You should file a bug. >> >> Done. >> >> Thanks for confirming my sanity. > > In what way is this a bug? I'm not aware of set theory saying anything > about the intersection of a set with an array. Arrays already behave like sets in some ways. They have set-like operators: irb(main):009:0* [1,2,3] & [2,3,4] => [2, 3] irb(main):010:0> [1,2,3] | [2,3,4] => [1, 2, 3, 4] irb(main):011:0> [1,2,3] - [2,3,4] => [1] But this argument falls down because arrays don't have symmetric difference: irb(main):012:0> [1,2,3] ^ [2,3,4] NoMethodError: undefined method `^' for [1, 2, 3]:Array from (irb):11 -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407