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,65 @@
class MySet(*set) {
method init {
var elems = set
set = Hash()
elems.each { |e| self += e }
}
method +(elem) {
set{elem} = elem
self
}
method del(elem) {
set.delete(elem)
}
method has(elem) {
set.has_key(elem)
}
method (MySet that) {
MySet(set.values..., that.values...)
}
method ∩(MySet that) {
MySet(set.keys.grep{ |k| k ∈ that } \
.map { |k| set{k} }...)
}
method (MySet that) {
MySet(set.keys.grep{|k| !(k ∈ that) } \
.map {|k| set{k} }...)
}
method ^(MySet that) {
var d = ((self that) (that self))
MySet(d.values...)
}
method count { set.len }
method ≡(MySet that) {
(self that -> count.is_zero) && (that self -> count.is_zero)
}
method values { set.values }
method ⊆(MySet that) {
that.set.keys.each { |k|
k ∈ self || return false
}
return true
}
method to_s {
"Set{" + set.values.map{|e| "#{e}"}.sort.join(', ') + "}"
}
}
class Object {
method ∈(MySet set) {
set.has(self)
}
}

View file

@ -0,0 +1,22 @@
var x = MySet(1, 2, 3)
5..7 -> each { |i| x += i }
var y = MySet(1, 2, 4, x)
say "set x is: #{x}"
say "set y is: #{y}"
[1,2,3,4,x].each { |elem|
say ("#{elem} is ", elem ∈ y ? '' : 'not', " in y")
}
var (w, z)
say ("union: ", x y)
say ("intersect: ", x ∩ y)
say ("z = x y = ", z = (x y) )
say ("y is ", x ⊆ y ? "" : "not ", "a subset of x")
say ("z is ", x ⊆ z ? "" : "not ", "a subset of x")
say ("z = (x y) (x ∩ y) = ", z = ((x y) (x ∩ y)))
say ("w = x ^ y = ", w = (x ^ y))
say ("w is ", w ≡ z ? "" : "not ", "equal to z")
say ("w is ", w ≡ x ? "" : "not ", "equal to x")