Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,78 @@
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

View file

@ -0,0 +1,25 @@
import "rosetta-code/set.nq"
a = new(set, {1, 2, 3, 4, 5})
b = new(set, {2, 3, 4, 5, 6, 8})
c = new(set, {2, 3, 4})
d = new(set, {2, 3, 4})
println "a: " + a
println "b: " + b
println "c: " + c
println "d: " + d
println "2 in a: " + a.contains(2)
println "6 in a: " + a.contains(6)
println "a union b: " + a.union(b)
println "a - b: " + a.difference(b)
println "c subset of a: " + c.subset(a)
println "c = d: " + (c = d)
println "d = c: " + (d = c)
println "a intersect b: " + a.intersection(b)
println "add 7 to a: " + a.append(7)
println "add 2 to a again: " + a.append(2)