Как правильно «установить -разницу» в Ruby?

Демонстрация (Я ожидаю результата[3]):

[1,2] - [1,2,3] => []    # Hmm
[1,2,3] - [1,2] => [3]   # I see

a = [1,2].to_set   => #<Set: {1, 2}>
b = [1,2,3].to_set => #<Set: {1, 2, 3}>
a - b              => #<Set: {}>  WTF!

И:

[1,2,9] - [1,2,3] => [9]  # Hmm. Would like [[9],[3]]

Как выполнить реальную разность множеств независимо от порядка входных данных?

Пс. Кстати, мне нужно сделать это для двух массивов из 2000 -элементов. Обычно массив #1 содержит меньше элементов, чем массив #2, но это не гарантируется.

18
задан Zabba 28 June 2012 в 04:51
поделиться