# A-level Computing 2009/AQA/Problem Solving, Programming, Data Representation and Practical Exercise/Fundamentals of Programming/Set operators

Sets describe collections of things such as numbers or people. For the exam you need to be familiar with the following terminology:
* Membership
* Union
* Difference
* Intersection
For the following examples we are going to use two sets. To define a set use the curly brackets and place all values of that set inside them.

## Membership

Membership defines what is contained in a particular set, it makes claims as to a particular things set membership. Set membership means "is an element of" and is written by ∈. The reverse "is NOT an element of" is written by ∉. Let's take a look at some examples:
Let us take a look at the two sets we are using as examples:
   * 0 ∈ A
   * 2 ∈ A
   * 0 ∈ B
   * 6 ∈ A AND 6 ∈ B
   * 7 ∉ B
   * 89 ∉ A

## Union

When we have sets we often want to perform actions on them, for example trying to find all the unique members contained in two sets. The union(∪) of A and B, denoted by A ∪ B, is the set of all things which are members of either A or B. It is similar to the boolean function OR. The union command allows us to perform this action:
   * {1, 2} ∪ {2,3,4} ={1,2,3,4}. (notice that we don't count 2 twice)
   * {1, 2} ∪ {red, white} ={1, 2, red, white}.
   * {1, 2, green} ∪ {red, white, green} ={1, 2, red, white, green}.
   * {1, 2} ∪ {1, 2} = {1, 2}.
* Exercise: Union
* Let us take a look at the two sets we are using as examples:
* A = {0,2,4,6,8,10,12}
* B = {0,3,6,9,12}
* A ∪ B
* Answer:
* ={0,2,3,4,6,8,9,10,12}.
* {3,4} ∪ B
* Answer:
* ={0,3,4,6,9,12}.
* A ∪ {7,13,red}
* Answer:
* ={0,2,4,6,7,8,10,12,13,red}.
* B ∪ B
* Answer:
* ={0,3,6,9,12}.

## Difference

Difference(\) is used to work out the members unique to one set, members that are not also in the other set. It is similar to the boolean function NAND. $A\setminus B=\{x\in A\,|\,x\notin B\}.$. Meaning elements that are members of A but not members of B. Let us look at some examples:
   * {1,2,3} ∖ {2,3,4} = {1}
   * {2,3,4} ∖ {1,2,3} = {4}
* Exercise: Difference
* Let us take a look at the two sets we are using as examples:
* A ∖  B    =
* Answer:
* {2,4,8,10}
* B ∖  A    =
* Answer:
* {3,9}
* B ∖  {1,2,3,5,7,11}    =
* Answer:
* {0,6,9,12}
* A ∖  {0,1,1,2,3,5,8,13}    =
* Answer:
* {4,6,10,12}

## Intersection

We use intersection(∩) to find out all the elements that are members of one set, and also at the same time members of another set. It is similar to the boolean function AND. : x ∈ A ∩ B = x ∈ A AND x ∈ B. Let us look at some examples:
   * {1, 2, 3} ∩ {2, 3, 4} = {2, 3}
   * {1, 2, 3} ∩ {bear,hen,squirrel} = Ø (this means an empty set)
   * {cat, dog, canary} ∩ {wolf, canary, whale, cat} = {cat, canary}
* Exercise: Intersection
* Let us take a look at the two sets we are using as examples:
* A ∩ B =
* Answer:
* {0,6,12}
* A ∩ {goat,4,6,9} =
* Answer:
* {4,6}
* A ∩ {goat,3,9} =
* Answer:
* It has no intersected values (Ø)
* B ∩ {3,5,7,9,11} =
* Answer:
* {3,9}

## Programming

Not every programming language offers the ability to perform set theory calculations out of the box. In Visual Basic it has only been available since VB.NET 2008, using the LINQ libraries that you have to import to get it working: