Task
Given two sets A and B, compute 



(
A
∖
B
)
∪
(
B
∖
A
)
.


{\displaystyle (A\setminus B)\cup (B\setminus A).}



That is, enumerate the items that are in A or B but not both. This set is called the symmetric difference of A and B.

In other words: 



(
A
∪
B
)
∖
(
A
∩
B
)


{\displaystyle (A\cup B)\setminus (A\cap B)}

 (the set of items that are in at least one of A or B minus the set of items that are in both A and B).

Optionally, give the individual differences (



A
∖
B


{\displaystyle A\setminus B}

 and 



B
∖
A


{\displaystyle B\setminus A}

) as well.



Test cases
A = {John, Bob, Mary, Serena}
B = {Jim, Mary, John, Bob}



Notes
 If your code uses lists of items to represent sets then ensure duplicate items in lists are correctly handled. For example two lists representing sets of a = ["John", "Serena", "Bob", "Mary", "Serena"] and b = ["Jim", "Mary", "John", "Jim", "Bob"] should produce the result of just two strings: ["Serena", "Jim"], in any order.
 In the mathematical notation above A \ B gives the set of items in A that are not in B; A ∪ B gives the set of items in both A and B, (their union); and A ∩ B gives the set of items that are in both A and B (their intersection).


lista1$ = "John Serena Bob Mary Serena"
lista2$ = "Jim Mary John Jim Bob"
 
lista1$ = quitadup$(lista1$)
lista2$ = quitadup$(lista2$)
res$ = quitacomun$(lista1$, lista2$)
res$ = res$ + quitacomun$(lista2$, lista1$)
print res$
 
 
sub quitadup$(l$)
	l$ = l$ + " "
	return quitarep$(l$)
end sub
 
 
sub quitacomun$(l1$, l2$)
	l1$ = l1$ + " "
	l2$ = l2$ + " "
	return quitarep$(l1$, l2$)
end sub
 
 
sub quitarep$(l1$, l2$)
	local pos, n, x, listar$, nombre$, largo
 
	largo = len(l1$)
	pos = 1
	while(true)
		n = instr(l1$, " ", pos)
		if n > 0 then
			nombre$ = mid$(l1$, pos, n-pos)
			if numparams = 1 then
				x = instr(listar$, nombre$)
			else
				x = instr(l2$, nombre$)
			end if
			if x = 0 listar$ = listar$ + nombre$ + " "
			pos = n + 1
		else
			return listar$
		end if
	wend
end sub
 