Symmetric difference: Difference between revisions

add FreeBASIC
(add FreeBASIC)
Line 942:
 
{ "John" "Bob" "Mary" "Serena" } { "Jim" "Mary" "John" "Bob" } symmetric-diff .</lang>
 
=={{header|FreeBASIC}}==
<lang freebasic>
redim shared as string Result(-1) 'represent our sets as strings;
'this'll do to illustrate the concept
 
sub sym( A() as string, B() as string )
dim as integer ai, bi, ri
dim as boolean add_it
for ai = lbound(A) to ubound(A)
add_it = true
for bi = lbound(B) to ubound(B)
if A(ai) = B(bi) then
add_it=false
exit for 'if item is common to both lists, don't include it
end if
next bi
if add_it then
for ri = 0 to ubound(Result)
if A(ai) = Result(ri) then
add_it=false
exit for
'if item is already in the result, don't include it again
end if
next ri
end if
if add_it then
redim preserve as string Result(0 to ubound(Result)+1)
Result(ubound(Result)) = A(ai)
end if
 
next ai
end sub
 
dim as string A(0 to 3) = {"John", "Bob", "Mary", "Serena"}
dim as string B(0 to 4) = {"Jim", "Mary", "John", "Bob", "Jim"}
'contains a double to show code can handle it
 
sym(A(), B())
sym(B(), A())
 
for i as uinteger = 0 to ubound(Result)
print Result(i)
next i
</lang>
{{out}}<pre>Serena
Jim
</lang>
 
=={{header|Forth}}==
781

edits