September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue