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