[ 1, 2, 1 ] - [ 1 ]   # -> [2]
     [ 1, 2, 1 ] - [ 2 ]   # -> [1]

I would have expected the result to be [ 1, 1 ].

Ah, you say, Array#- is _set_ difference, and a set can't contain
duplicates.

Yes, I say, but

    [ 1, 2, 1 ] + [ 1, 2, 3 ] # -> [1, 2, 1, 1, 2, 3]


Either way, if the above behavior is correct we've got a bug in the
book ;-(


Dave