Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
55
Task/Set-consolidation/Aime/set-consolidation.aime
Normal file
55
Task/Set-consolidation/Aime/set-consolidation.aime
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
display(list l)
|
||||
{
|
||||
for (integer i, record r in l) {
|
||||
text u, v;
|
||||
|
||||
o_text(i ? ", {" : "{");
|
||||
for (u in r) {
|
||||
o_(v, u);
|
||||
v = ", ";
|
||||
}
|
||||
o_text("}");
|
||||
}
|
||||
|
||||
o_text("\n");
|
||||
}
|
||||
|
||||
intersect(record r, record u)
|
||||
{
|
||||
trap_q(r_vcall, r, r_put, 1, record().copy(u), 0);
|
||||
}
|
||||
|
||||
consolidate(list l)
|
||||
{
|
||||
for (integer i, record r in l) {
|
||||
integer j;
|
||||
|
||||
j = i - ~l;
|
||||
while (j += 1) {
|
||||
if (intersect(r, l[j])) {
|
||||
r.wcall(r_add, 1, 2, l[j]);
|
||||
l.delete(i);
|
||||
i -= 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
l;
|
||||
}
|
||||
|
||||
R(...)
|
||||
{
|
||||
ucall.2(r_put, 1, record(), 0);
|
||||
}
|
||||
|
||||
main(void)
|
||||
{
|
||||
display(consolidate(list(R("A", "B"), R("C", "D"))));
|
||||
display(consolidate(list(R("A", "B"), R("B", "D"))));
|
||||
display(consolidate(list(R("A", "B"), R("C", "D"), R("D", "B"))));
|
||||
display(consolidate(list(R("H", "I", "K"), R("A", "B"), R("C", "D"),
|
||||
R("D", "B"), R("F", "G", "K"))));
|
||||
|
||||
0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue