79 lines
2.2 KiB
Plaintext
79 lines
2.2 KiB
Plaintext
class set
|
|
declare internal_list
|
|
|
|
def set()
|
|
internal_list = list()
|
|
end
|
|
def set(list)
|
|
internal_list = list
|
|
end
|
|
|
|
def append(value)
|
|
if not value in internal_list
|
|
internal_list.append(value)
|
|
end
|
|
return this
|
|
end
|
|
def contains(value)
|
|
return value in internal_list
|
|
end
|
|
def difference(other)
|
|
diff = list()
|
|
for value in this.internal_list
|
|
diff.append(value)
|
|
end
|
|
|
|
for i in range(len(diff) - 1, 0)
|
|
if diff[i] in other.internal_list
|
|
diff.remove(i)
|
|
end
|
|
end
|
|
|
|
return new(set, diff)
|
|
end
|
|
def operator=(other)
|
|
for value in other.internal_list
|
|
if not value in this.internal_list
|
|
return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
def intersection(other)
|
|
intersect = list()
|
|
for value in this.internal_list
|
|
if other.contains(value)
|
|
intersect.append(value)
|
|
end
|
|
end
|
|
return new(set, intersect)
|
|
end
|
|
def subset(other)
|
|
for value in this.internal_list
|
|
if not value in other.internal_list
|
|
return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
def union(other)
|
|
u = list()
|
|
|
|
for value in this.internal_list
|
|
u.append(value)
|
|
end
|
|
|
|
for value in other.internal_list
|
|
if not value in u
|
|
u.append(value)
|
|
end
|
|
end
|
|
|
|
return new(set, u)
|
|
end
|
|
|
|
def toString()
|
|
return str(this.internal_list)
|
|
end
|
|
end
|