Oğuz Kılıç (2019-07-09T20:02:11.000Z)
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