47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
require "map"
|
|
local fmt = require "fmt"
|
|
|
|
local fruits = new set()
|
|
fruits:add("apple", "pear", "orange", "banana")
|
|
fmt.print("fruits : %s", fruits)
|
|
local fruits2 = new set()
|
|
fruits2:add("melon", "orange", "lemon", "gooseberry")
|
|
fmt.print("fruits2 : %s", fruits2)
|
|
print()
|
|
fmt.print("fruits contains 'banana' : %s", fruits:contains("banana"))
|
|
fmt.print("fruits2 contains 'elderberry' : %s", fruits2:contains("elderberry"))
|
|
print()
|
|
|
|
fmt.print("Union : %s", fruits:union(fruits2))
|
|
fmt.print("Intersection : %s", fruits:intersect(fruits2))
|
|
fmt.print("Difference : %s", fruits:except(fruits2))
|
|
print()
|
|
|
|
fmt.print("fruits2 is a subset of fruits : %s", fruits2:subset(fruits))
|
|
print()
|
|
|
|
local fruits3 = fruits:copy()
|
|
fmt.print("fruits3 : %s", fruits3)
|
|
print()
|
|
|
|
fmt.print("fruits2 and fruits are equal : %s", fruits2:same(fruits))
|
|
fmt.print("fruits3 and fruits are equal : %s", fruits3:same(fruits))
|
|
print()
|
|
|
|
local fruits4 = new set()
|
|
fruits4:add("apple", "orange")
|
|
fmt.print("fruits4 : %s", fruits4)
|
|
print()
|
|
fmt.print("fruits3 is a proper subset of fruits : %s", fruits3:subset(fruits, true))
|
|
fmt.print("fruits4 is a proper subset of fruits : %s", fruits4:subset(fruits, true))
|
|
print()
|
|
|
|
local fruits5 = new set()
|
|
fruits5:add("cherry", "blueberry", "raspberry")
|
|
fmt.print("fruits5 : %s", fruits5)
|
|
print()
|
|
fruits5:add("guava")
|
|
fmt.print("fruits5 + 'guava' : %s", fruits5)
|
|
fruits5:remove("cherry")
|
|
fmt.print("fruits5 - 'cherry' : %s", fruits5)
|