@dashkite/joy
Version:
[](https://firstdonoharm.dev/version/3/0/core.html)
34 lines (33 loc) • 6.11 kB
JavaScript
var difference, duplicates, intersection, symmetricDifference, union, unique;
import { curry } from "./function";
union = function(ax, bx) {
return new Set(ax).union(new Set(bx));
};
intersection = curry(function(ax, bx) {
return new Set(ax).intersection(new Set(bx));
});
symmetricDifference = function(ax, bx) {
return new Set(ax).symmetricDifference(new Set(bx));
};
difference = function(ax, bx) {
return new Set(ax).difference(new Set(bx));
};
unique = function(ax) {
return new Set(ax);
};
duplicates = function(ax) {
var a, bx, cx;
bx = new Set(); // items we've seen at least once
cx = new Set(); // items we've seen at least twice
for (a of ax){
if (bx.has(a)) {
cx.add(a);
} else {
bx.add(a);
}
}
return cx;
};
export { union, intersection, symmetricDifference, difference, unique, duplicates }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3NldC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBQSxVQUFBLEVBQUEsVUFBQSxFQUFBLFlBQUEsRUFBQSxtQkFBQSxFQUFBLEtBQUEsRUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtDQUFBLE1BQUE7O0FBRUEsS0FBQSxHQUFRLFFBQUEsQ0FBRSxFQUFGLEVBQU0sRUFBTixDQUFBO1NBQ04sQ0FBRSxJQUFJLEdBQUosQ0FBUSxFQUFSLENBQUYsQ0FBYyxDQUFDLEtBQWYsQ0FBdUIsSUFBSSxHQUFKLENBQVEsRUFBUixDQUF2QjtBQURNOztBQUdSLFlBQUEsR0FBZSxLQUFBLENBQU0sUUFBQSxDQUFFLEVBQUYsRUFBTSxFQUFOLENBQUE7U0FDbkIsQ0FBRSxJQUFJLEdBQUosQ0FBUSxFQUFSLENBQUYsQ0FBYyxDQUFDLFlBQWYsQ0FBOEIsSUFBSSxHQUFKLENBQVEsRUFBUixDQUE5QjtBQURtQixDQUFOOztBQUdmLG1CQUFBLEdBQXNCLFFBQUEsQ0FBRSxFQUFGLEVBQU0sRUFBTixDQUFBO1NBQ3BCLENBQUUsSUFBSSxHQUFKLENBQVEsRUFBUixDQUFGLENBQWMsQ0FBQyxtQkFBZixDQUFxQyxJQUFJLEdBQUosQ0FBUSxFQUFSLENBQXJDO0FBRG9COztBQUd0QixVQUFBLEdBQWEsUUFBQSxDQUFFLEVBQUYsRUFBTSxFQUFOLENBQUE7U0FDWCxDQUFFLElBQUksR0FBSixDQUFRLEVBQVIsQ0FBRixDQUFjLENBQUMsVUFBZixDQUE0QixJQUFJLEdBQUosQ0FBUSxFQUFSLENBQTVCO0FBRFc7O0FBR2IsTUFBQSxHQUFTLFFBQUEsQ0FBRSxFQUFGLENBQUE7U0FBVSxJQUFJLEdBQUosQ0FBUSxFQUFSO0FBQVY7O0FBRVQsVUFBQSxHQUFhLFFBQUEsQ0FBRSxFQUFGLENBQUE7QUFDYixNQUFBLENBQUEsRUFBQSxFQUFBLEVBQUE7RUFBRSxFQUFBLEdBQUssSUFBSSxHQUFKLENBQUEsRUFBUDtFQUNFLEVBQUEsR0FBSyxJQUFJLEdBQUosQ0FBQSxFQURQO0VBRUUsS0FBQSxPQUFBO0lBQ0UsSUFBRyxFQUFFLENBQUMsR0FBSCxDQUFPLENBQVAsQ0FBSDtNQUFpQixFQUFFLENBQUMsR0FBSCxDQUFPLENBQVAsRUFBakI7S0FBQSxNQUFBO01BQStCLEVBQUUsQ0FBQyxHQUFILENBQU8sQ0FBUCxFQUEvQjs7RUFERjtTQUVBO0FBTFc7O0FBT2IsT0FBQTtFQUNFLEtBREY7RUFFRSxZQUZGO0VBR0UsbUJBSEY7RUFJRSxVQUpGO0VBS0UsTUFMRjtFQU1FLFVBTkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5fSBmcm9tIFwiLi9mdW5jdGlvblwiXG5cbnVuaW9uID0gKCBheCwgYnggKSAtPlxuICAoIG5ldyBTZXQgYXggKS51bmlvbiAoIG5ldyBTZXQgYnggKVxuXG5pbnRlcnNlY3Rpb24gPSBjdXJyeSAoIGF4LCBieCApIC0+XG4gICggbmV3IFNldCBheCApLmludGVyc2VjdGlvbiAoIG5ldyBTZXQgYnggKVxuXG5zeW1tZXRyaWNEaWZmZXJlbmNlID0gKCBheCwgYnggKSAtPiAgXG4gICggbmV3IFNldCBheCApLnN5bW1ldHJpY0RpZmZlcmVuY2UgKCBuZXcgU2V0IGJ4IClcblxuZGlmZmVyZW5jZSA9ICggYXgsIGJ4ICkgLT5cbiAgKCBuZXcgU2V0IGF4ICkuZGlmZmVyZW5jZSAoIG5ldyBTZXQgYnggKVxuXG51bmlxdWUgPSAoIGF4ICkgLT4gbmV3IFNldCBheFxuXG5kdXBsaWNhdGVzID0gKCBheCApIC0+XG4gIGJ4ID0gbmV3IFNldCAjIGl0ZW1zIHdlJ3ZlIHNlZW4gYXQgbGVhc3Qgb25jZVxuICBjeCA9IG5ldyBTZXQgIyBpdGVtcyB3ZSd2ZSBzZWVuIGF0IGxlYXN0IHR3aWNlXG4gIGZvciBhIGZyb20gYXhcbiAgICBpZiBieC5oYXMgYSB0aGVuIGN4LmFkZCBhIGVsc2UgYnguYWRkIGFcbiAgY3hcblxuZXhwb3J0IHtcbiAgdW5pb25cbiAgaW50ZXJzZWN0aW9uXG4gIHN5bW1ldHJpY0RpZmZlcmVuY2VcbiAgZGlmZmVyZW5jZVxuICB1bmlxdWVcbiAgZHVwbGljYXRlc1xufVxuIl19
//# sourceURL=/@dashkite/joy/src/set.coffee
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvc2V0LmNvZmZlZSJdLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdXJyeX0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuXG51bmlvbiA9ICggYXgsIGJ4ICkgLT5cbiAgKCBuZXcgU2V0IGF4ICkudW5pb24gKCBuZXcgU2V0IGJ4IClcblxuaW50ZXJzZWN0aW9uID0gY3VycnkgKCBheCwgYnggKSAtPlxuICAoIG5ldyBTZXQgYXggKS5pbnRlcnNlY3Rpb24gKCBuZXcgU2V0IGJ4IClcblxuc3ltbWV0cmljRGlmZmVyZW5jZSA9ICggYXgsIGJ4ICkgLT4gIFxuICAoIG5ldyBTZXQgYXggKS5zeW1tZXRyaWNEaWZmZXJlbmNlICggbmV3IFNldCBieCApXG5cbmRpZmZlcmVuY2UgPSAoIGF4LCBieCApIC0+XG4gICggbmV3IFNldCBheCApLmRpZmZlcmVuY2UgKCBuZXcgU2V0IGJ4IClcblxudW5pcXVlID0gKCBheCApIC0+IG5ldyBTZXQgYXhcblxuZHVwbGljYXRlcyA9ICggYXggKSAtPlxuICBieCA9IG5ldyBTZXQgIyBpdGVtcyB3ZSd2ZSBzZWVuIGF0IGxlYXN0IG9uY2VcbiAgY3ggPSBuZXcgU2V0ICMgaXRlbXMgd2UndmUgc2VlbiBhdCBsZWFzdCB0d2ljZVxuICBmb3IgYSBmcm9tIGF4XG4gICAgaWYgYnguaGFzIGEgdGhlbiBjeC5hZGQgYSBlbHNlIGJ4LmFkZCBhXG4gIGN4XG5cbmV4cG9ydCB7XG4gIHVuaW9uXG4gIGludGVyc2VjdGlvblxuICBzeW1tZXRyaWNEaWZmZXJlbmNlXG4gIGRpZmZlcmVuY2VcbiAgdW5pcXVlXG4gIGR1cGxpY2F0ZXNcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsWUFBQSxFQUFBLG1CQUFBLEVBQUEsS0FBQSxFQUFBO0FBQUEsT0FBQSxFQUFRLEtBQVIsUUFBQSxhQUFBO0FBRUEsS0FBQSxHQUFRLFFBQUEsQ0FBRSxFQUFGLEVBQU0sRUFBTixDQUFBO1dBQ04sQUFBRSxJQUFJLEdBQUosQ0FBUSxFQUFSLENBQUYsQ0FBYyxBQUFDLEtBQWYsQ0FBdUIsSUFBSSxHQUFKLENBQVEsRUFBUixDQUF2QjtBQURNO0FBR1IsWUFBQSxHQUFlLEtBQUEsQ0FBTSxRQUFBLENBQUUsRUFBRixFQUFNLEVBQU4sQ0FBQTtXQUNuQixBQUFFLElBQUksR0FBSixDQUFRLEVBQVIsQ0FBRixDQUFjLEFBQUMsWUFBZixDQUE4QixJQUFJLEdBQUosQ0FBUSxFQUFSLENBQTlCO0FBRG1CLENBQU47QUFHZixtQkFBQSxHQUFzQixRQUFBLENBQUUsRUFBRixFQUFNLEVBQU4sQ0FBQTtXQUNwQixBQUFFLElBQUksR0FBSixDQUFRLEVBQVIsQ0FBRixDQUFjLEFBQUMsbUJBQWYsQ0FBcUMsSUFBSSxHQUFKLENBQVEsRUFBUixDQUFyQztBQURvQjtBQUd0QixVQUFBLEdBQWEsUUFBQSxDQUFFLEVBQUYsRUFBTSxFQUFOLENBQUE7V0FDWCxBQUFFLElBQUksR0FBSixDQUFRLEVBQVIsQ0FBRixDQUFjLEFBQUMsVUFBZixDQUE0QixJQUFJLEdBQUosQ0FBUSxFQUFSLENBQTVCO0FBRFc7QUFHYixNQUFBLEdBQVMsUUFBQSxDQUFFLEVBQUYsQ0FBQTtXQUFVLElBQUksR0FBSixDQUFRLEVBQVI7QUFBVjtBQUVULFVBQUEsR0FBYSxRQUFBLENBQUUsRUFBRixDQUFBO0lBQ2IsSUFBQSxDQUFBLEVBQUEsRUFBQSxFQUFBO0lBQUUsRUFBQSxHQUFLLElBQUksR0FBSixDQUFBLEVBQVAsQ0FBQSxpQ0FBQTtJQUNFLEVBQUEsR0FBSyxJQUFJLEdBQUosQ0FBQSxFQURQLENBQUEsa0NBQUE7SUFFRSxLQUFBLEtBQUEsRUFBQSxDQUFBO1FBQ0UsSUFBRyxFQUFFLENBQUMsR0FBSCxDQUFPLENBQVAsQ0FBSCxFQUFBO1lBQWlCLEVBQUUsQ0FBQyxHQUFILENBQU8sQ0FBUCxFQUFqQjtTQUFBLE1BQUE7WUFBK0IsRUFBRSxDQUFDLEdBQUgsQ0FBTyxDQUFQLEVBQS9COztJQURGO1dBRUE7QUFMVztBQU9iLE9BQUEsRUFDRSxLQURGLEVBRUUsWUFGRixFQUdFLG1CQUhGLEVBSUUsVUFKRixFQUtFLE1BTEYsRUFNRSxVQU5GIn0=