pegisland
Version:
General PEG-based parser supporting island grammars with lake symbols
25 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.areEqualSets = exports.difference = exports.intersection = exports.union = void 0;
// Copyright (C) 2021- Katsumi Okuda. All rights reserved.
const assert_1 = require("assert");
function union(...sets) {
(0, assert_1.strict)(sets.length > 0);
return sets.reduce((x, y) => new Set([...Array.from(x), ...Array.from(y)]));
}
exports.union = union;
function intersection(...sets) {
(0, assert_1.strict)(sets.length > 0);
return sets.reduce((x, y) => new Set(Array.from(x).filter((e) => y.has(e))));
}
exports.intersection = intersection;
function difference(...sets) {
(0, assert_1.strict)(sets.length > 0);
return sets.reduce((x, y) => new Set(Array.from(x).filter((e) => !y.has(e))));
}
exports.difference = difference;
function areEqualSets(x, y) {
return x.size === y.size && difference(x, y).size === 0;
}
exports.areEqualSets = areEqualSets;
//# sourceMappingURL=set-operations.js.map