Libraryless. Click here for Pure Java version (3201L/20K).
sclass PosNeg<A> { new MultiSet<A> pos; new MultiSet<A> neg; *() {} *(Iterable<A> pos, Iterable<A> neg) { this.pos.addAll(pos); this.neg.addAll(neg); } *(Iterable<Pair<A, Bool>> pairs) { fOr (Pair<A, Bool> p : pairs) add(p.a, p.b); } *(Map<A, Bool> map) { fOr (A a, Bool b : map) add(a, b); } void add(A a, int score) { if (score > 0) pos.add(a, score); else if (score < 0) neg.add(a, -score); } void add(A a, Bool b) { if (isTrue(b)) pos.add(a); else if (isFalse(b)) neg.add(a); } int get(A a) { ret pos.get(a)-neg.get(a); } int score() { ret l(pos)-l(neg); } int n() { ret l(pos)+l(neg); } int nPos() { ret l(pos); } int nNeg() { ret l(neg); } bool isEmpty() { ret n() == 0; } bool perfect() { ret nPos() != 0 && nNeg() == 0; } bool antiPerfect() { ret nPos() == 0 && nNeg() != 0; } toString { ret "+" + nPos() + "/-" + nNeg() + ": " + pos + " / " + neg; } }
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
Snippet ID: | #1010411 |
Snippet name: | PosNeg - positive MultiSet + negative MultiSet |
Eternal ID of this version: | #1010411/15 |
Text MD5: | d4ea5ae779490183441d7d171fd848b0 |
Transpilation MD5: | 847b61b3f5036b7c666268795057f9f6 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2020-07-06 00:32:30 |
Source code size: | 1057 bytes / 50 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 528 / 1235 |
Version history: | 14 change(s) |
Referenced in: | [show references] |