Oğuz Kılıç (2019-07-09T20:02:11.000Z)
As you know, the current Set feature is not sufficient in some aspects. We
benefit from utility libraries or special implementations to fill this
deficiency.

For example, wouldn’t it be better if we had the following approach?

UNION

X ∪ Y = { x | x ∈ X or x ∈ Y }

let first = new SuperSet(["a", "b", "c"]);
let second = new SuperSet(["b", "c", "d", "e"]);

first.union(second); //→ SuperSet { "a", "b", "c", "d", "e" }

DIFFERENCE

X - Y = { x | x ∈ X and x ∉ Y }

let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);

nums.diff(primes); // → SuperSet { 4, 6 }

INTERSECT

X ∩ Y = { x | x ∈ X and x ∈ Y }

let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);
nums.intersect(primes); // → SuperSet { 3, 5 }

DISCARD

let nums = new SuperSet([1, 2, 3, 4]);
nums.discard([1, 3]); // → SuperSet { 2, 4 }

Motivation
SuperSet - https://github.com/BYK/superset
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190709/d50c9903/attachment-0001.html>
oguzz.kilic at gmail.com (2019-07-09T20:04:47.746Z)
As you know, the current Set feature is not sufficient in some aspects. We
benefit from utility libraries or special implementations to fill this
deficiency.

For example, wouldn’t it be better if we had the following approach?

UNION

```
X ∪ Y = { x | x ∈ X or x ∈ Y }
```
```
let first = new SuperSet(["a", "b", "c"]);
let second = new SuperSet(["b", "c", "d", "e"]);

first.union(second); //→ SuperSet { "a", "b", "c", "d", "e" }
```

DIFFERENCE

```
X - Y = { x | x ∈ X and x ∉ Y }
```

```
let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);

nums.diff(primes); // → SuperSet { 4, 6 }
```

INTERSECT

```
X ∩ Y = { x | x ∈ X and x ∈ Y }
```

```
let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);
nums.intersect(primes); // → SuperSet { 3, 5 }
```

DISCARD
```
let nums = new SuperSet([1, 2, 3, 4]);
nums.discard([1, 3]); // → SuperSet { 2, 4 }
```

Motivation
SuperSet - https://github.com/BYK/superset