Пример разности канонических массивов в Ruby:
[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]
Какой лучший способ получить следующее поведение вместо этого?
[ 1, 1, 2, 2, 3, 3, 4, 5 ].subtract_once([ 1, 2, 4 ]) #=> [ 1, 2, 3, 3, 5 ]
То есть только первый экземпляр каждого соответствующего элемента во втором массиве удаляется из первого массива.