September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -2,26 +2,21 @@ void
display(list l)
{
integer i;
record r;
text s;
i = -l_length(l);
while (i) {
record r;
for (i, r in l) {
text u, v;
o_text(s);
s = ", ";
o_text("{");
r = l_q_record(l, i);
if (r_first(r, u)) {
do {
o_text(v);
v = ", ";
o_text(u);
} while (r_greater(r, u, u));
for (u in r) {
o_text(v);
v = ", ";
o_text(u);
}
o_text("}");
i += 1;
}
o_text("\n");
@ -34,13 +29,11 @@ intersect(record r, record u)
text s;
a = 0;
if (r_first(r, s)) {
do {
if (r_key(u, s)) {
a = 1;
break;
}
} while (r_greater(r, s, s));
for (s in r) {
if (r_key(u, s)) {
a = 1;
break;
}
}
return a;
@ -49,36 +42,28 @@ intersect(record r, record u)
void
merge(record u, record r)
{
text s;
if (r_first(r, s)) {
do {
r_add(u, s, r_query(r, s));
} while (r_greater(r, s, s));
}
r_wcall(r, r_add, 1, 2, u);
}
list
consolidate(list l)
{
integer i;
record r;
i = -l_length(l);
while (i) {
for (i, r in l) {
integer j;
record r;
r = l_q_record(l, i);
i += 1;
j = i;
j = i - ~l + 1;
while (j) {
record u;
u = l_q_record(l, j);
u = l[j];
j += 1;
if (intersect(r, u)) {
merge(u, r);
l_delete(l, i - 1);
l_delete(l, i);
i -= 1;
break;
}
}
@ -90,29 +75,15 @@ consolidate(list l)
list
L(...)
{
integer i;
list l;
i = -count();
while (i) {
l_link(l, -1, $i);
i += 1;
}
return l;
return xcall(l_assemble);
}
record
R(...)
{
integer i;
record r;
i = -count();
while (i) {
r_p_integer(r, $i, 0);
i += 1;
}
ucall(r_p_integer, 1, r, 0);
return r;
}