A példa a generikus halmazra ad példát, valamint megmutat egy általános
copy-similar kapcsolatot. A paraméter típus megszorított. Van benne egy
lista-iterátor is...
[cluster; where; array; rep; cvt; up; down; iter; type-parameter] (CLU
forrás)
rep=array[t]
create=proc() returns (cvt)
return (rep$new())
end create
insert=proc(s:cvt,i:t)
if ~is_in(up(s),i) then rep$addh(s,i) end
end insert
delete=proc(s:cvt,i:t)
for j:int in rep$indexes(s) do
if i=s[j] then
s[j]:=rep$top(s)
rep$remh(s)
return
end
end
end delete
is_in=proc(s:cvt,i:t) returns (bool)
for j:t in rep$elements(s) do
if i=j then return (true) end
end
end is_in
size=proc(s:cvt) returns (int)
return (rep$size(s))
end size
elements=iter(s:cvt) yields (t)
for i:t in rep$elements(s) do yield(i) end
end elements
equal=proc(s1,s2:cvt) returns (bool)
return (s1=s2)
end equal
similar=proc(s1,s2:set[t]) returns (bool)
if size(s1)~=size(s2) then return(false) end
for i:t in elements(s1) do
if ~is_in(s2,i) then return
(false) end
end
return (true)
end similar
end set