3
$\begingroup$

How to write a nice code that removes all elements from given set A, that occur also in set B? I would like to use DeleteCases[] for this purpose, but have no good idea how to make it efficient.

SetDifference[A_,B_]:=DeleteCases[A, ??? ]

Or to find out if theres a ready to use function already, as in Lists as Sets there is nothing like that mentioned.

$\endgroup$
  • 1
    $\begingroup$ There is Complement but it could be not efficient enough if you know that, for example, A has no duplicates. $\endgroup$ – Kuba Oct 18 '13 at 10:48
9
$\begingroup$

There is an adequate function: Complement, e.g.:

Complement[{a, b, c, d, e}, {a, c, d}]
{b, e}

It works also with more sets, lists or with any heads, e.g.:

Complement[{a, b, c, d, e}, {a}, {c, e}, {d}]
{b}
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.