RosettaCodeData/Task/Symmetric-difference/Phix/symmetric-difference.phix
2017-09-25 22:28:19 +02:00

30 lines
768 B
Text

function Union(sequence a, sequence b)
for i=1 to length(a) do
if not find(a[i],b) then
b = append(b,a[i])
end if
end for
return b
end function
function Difference(sequence a, sequence b)
sequence res = {}
for i=1 to length(a) do
if not find(a[i],b)
and not find(a[i],res) then
res = append(res,a[i])
end if
end for
return res
end function
function Symmetric_Difference(sequence a, sequence b)
return Union(Difference(a, b), Difference(b, a))
end function
sequence a = {"John", "Serena", "Bob", "Mary", "Serena"},
b = {"Jim", "Mary", "John", "Jim", "Bob"}
?Symmetric_Difference(a,a)
?Symmetric_Difference(a,b)
?Symmetric_Difference(b,a)
?Symmetric_Difference(b,b)