June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,52 +1,34 @@
void
show_list(list l)
{
integer i;
text s;
integer i, k;
o_text("[");
s = "";
i = 0;
while (i < l_length(l)) {
o_text(s);
if (l_s_integer(l, i)) {
o_integer(l[i]);
while (i < ~l) {
o_text(i ? ", " : "");
if (l_j_integer(k, l, i)) {
o_integer(k);
} else {
show_list(l[i]);
}
s = ", ";
i += 1;
}
o_text("]");
}
void
flat(list c, object o)
list
flatten(list c, object o)
{
if (__id(o) == INTEGER_ID) {
l_append(c, o);
c.append(o);
} else {
l_ucall(o, flat, 1, c);
l_ucall(o, flatten, 1, c);
}
}
list
flatten(list l)
{
list c;
l_ucall(l, flat, 1, c);
return c;
}
list
nl(...)
{
return xcall(l_assemble);
c;
}
integer
@ -54,12 +36,13 @@ main(void)
{
list l;
l = nl(nl(1), 2, nl(nl(3, 4), 5), nl(nl(nl())), nl(nl(nl(6))), 7, 8, nl());
l = list(list(1), 2, list(list(3, 4), 5),
list(list(list())), list(list(list(6))), 7, 8, list());
show_list(l);
o_byte('\n');
show_list(flatten(l));
show_list(flatten(list(), l));
o_byte('\n');
return 0;