UNPKG

@dashkite/joy

Version:

[![Hippocratic License HL3-CORE](https://img.shields.io/static/v1?label=Hippocratic%20License&message=HL3-CORE&labelColor=5e2751&color=bc8c3d)](https://firstdonoharm.dev/version/3/0/core.html)

34 lines (33 loc) 6.11 kB
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=