Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
|
|
@ -0,0 +1,53 @@
|
|||
Set = new map
|
||||
Set["set"] = {}
|
||||
|
||||
Set.init = function(items)
|
||||
set = new Set
|
||||
set.set = {}
|
||||
for item in items
|
||||
set.add(item)
|
||||
end for
|
||||
return set
|
||||
end function
|
||||
|
||||
Set.contains = function(item)
|
||||
return self.set.hasIndex(item)
|
||||
end function
|
||||
|
||||
Set.items = function
|
||||
return self.set.indexes
|
||||
end function
|
||||
|
||||
Set.add = function(item)
|
||||
self.set[item] = true
|
||||
end function
|
||||
|
||||
Set.union = function(other)
|
||||
result = Set.init
|
||||
result.set = self.set + other.set
|
||||
return result
|
||||
end function
|
||||
|
||||
Set.difference = function(other)
|
||||
result = Set.init
|
||||
for item in self.items
|
||||
if not other.contains(item) then result.add(item)
|
||||
end for
|
||||
return result
|
||||
end function
|
||||
|
||||
Set.symmetricDifference = function(other)
|
||||
diff1 = self.difference(other)
|
||||
diff2 = other.difference(self)
|
||||
return diff1.union(diff2)
|
||||
end function
|
||||
|
||||
a = ["John", "Serena", "Bob", "Mary", "Serena"]
|
||||
b = ["Jim", "Mary", "John", "Jim", "Bob"]
|
||||
|
||||
A1 = Set.init(a)
|
||||
B1 = Set.init(b)
|
||||
|
||||
print "A XOR B " + A1.symmetricDifference(B1).items
|
||||
print "A - B " + A1.difference(B1).items
|
||||
print "B - A " + B1.difference(A1).items
|
||||
Loading…
Add table
Add a link
Reference in a new issue