63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
sequence set1 = {1,2,3},
|
|
set2 = {3,4,5}
|
|
|
|
function element(object x, sequence set)
|
|
return find(x,set)!=0
|
|
end function
|
|
|
|
function union(sequence set1, sequence set2)
|
|
for i=1 to length(set2) do
|
|
if not element(set2[i],set1) then
|
|
set1 = append(set1,set2[i])
|
|
end if
|
|
end for
|
|
return set1
|
|
end function
|
|
|
|
function intersection(sequence set1, sequence set2)
|
|
sequence res = {}
|
|
for i=1 to length(set1) do
|
|
if element(set1[i],set2) then
|
|
res = append(res,set1[i])
|
|
end if
|
|
end for
|
|
return res
|
|
end function
|
|
|
|
function difference(sequence set1, sequence set2)
|
|
sequence res = {}
|
|
for i=1 to length(set1) do
|
|
if not element(set1[i],set2) then
|
|
res = append(res,set1[i])
|
|
end if
|
|
end for
|
|
return res
|
|
end function
|
|
|
|
function subset(sequence set1, sequence set2)
|
|
for i=1 to length(set1) do
|
|
if not element(set1[i],set2) then
|
|
return false
|
|
end if
|
|
end for
|
|
return true
|
|
end function
|
|
|
|
function equality(sequence set1, sequence set2)
|
|
if length(set1)!=length(set2) then
|
|
return false
|
|
end if
|
|
return subset(set1,set2)
|
|
end function
|
|
|
|
--test code:
|
|
?element(3,set1) -- 1
|
|
?element(4,set1) -- 0
|
|
?union(set1,set2) -- {1,2,3,4,5}
|
|
?intersection(set1,set2) -- {3}
|
|
?difference(set1,set2) -- {1,2}
|
|
?subset(set1,set2) -- 0
|
|
?subset({1,2},set1) -- 1
|
|
?equality(set1,set2) -- 0
|
|
?equality(set1,{3,1,2}) -- 1
|