September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -1,56 +1,56 @@
|
|||
class Set(*set) {
|
||||
class MySet(*set) {
|
||||
|
||||
method init {
|
||||
var elems = set;
|
||||
set = Hash.new;
|
||||
var elems = set
|
||||
set = Hash()
|
||||
elems.each { |e| self += e }
|
||||
}
|
||||
|
||||
method +(elem) {
|
||||
set{elem} = elem;
|
||||
self;
|
||||
set{elem} = elem
|
||||
self
|
||||
}
|
||||
|
||||
method del(elem) {
|
||||
set.delete(elem);
|
||||
set.delete(elem)
|
||||
}
|
||||
|
||||
method has(elem) {
|
||||
set.has_key(elem);
|
||||
set.has_key(elem)
|
||||
}
|
||||
|
||||
method ∪(Set that) {
|
||||
Set(set.values..., that.values...);
|
||||
method ∪(MySet that) {
|
||||
MySet(set.values..., that.values...)
|
||||
}
|
||||
|
||||
method ∩(Set that) {
|
||||
Set(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 ∖(Set that) {
|
||||
Set(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 ^(Set that) {
|
||||
var d = ((self ∖ that) ∪ (that ∖ self));
|
||||
Set(d.values...);
|
||||
method ^(MySet that) {
|
||||
var d = ((self ∖ that) ∪ (that ∖ self))
|
||||
MySet(d.values...)
|
||||
}
|
||||
|
||||
method count { set.len }
|
||||
|
||||
method ≡(Set that) {
|
||||
(self ∖ that -> count.is_zero) && (that ∖ self -> count.is_zero);
|
||||
method ≡(MySet that) {
|
||||
(self ∖ that -> count.is_zero) && (that ∖ self -> count.is_zero)
|
||||
}
|
||||
|
||||
method values { set.values }
|
||||
|
||||
method ⊆(Set that) {
|
||||
method ⊆(MySet that) {
|
||||
that.set.keys.each { |k|
|
||||
k ∈ self || return false;
|
||||
k ∈ self || return false
|
||||
}
|
||||
return true;
|
||||
return true
|
||||
}
|
||||
|
||||
method to_s {
|
||||
|
|
@ -59,7 +59,7 @@ class Set(*set) {
|
|||
}
|
||||
|
||||
class Object {
|
||||
method ∈(Set set) {
|
||||
set.has(self);
|
||||
method ∈(MySet set) {
|
||||
set.has(self)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
var x = Set(1, 2, 3);
|
||||
5..7 -> each { |i| x += i };
|
||||
var x = MySet(1, 2, 3)
|
||||
5..7 -> each { |i| x += i }
|
||||
|
||||
var y = Set(1, 2, 4, x);
|
||||
var y = MySet(1, 2, 4, x)
|
||||
|
||||
say "set x is: #{x}";
|
||||
say "set y is: #{y}";
|
||||
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");
|
||||
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");
|
||||
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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue