49 lines
695 B
Text
49 lines
695 B
Text
void
|
|
show_list(list l)
|
|
{
|
|
integer i, k;
|
|
|
|
o_text("[");
|
|
|
|
i = 0;
|
|
while (i < ~l) {
|
|
o_text(i ? ", " : "");
|
|
if (l_j_integer(k, l, i)) {
|
|
o_integer(k);
|
|
} else {
|
|
show_list(l[i]);
|
|
}
|
|
i += 1;
|
|
}
|
|
|
|
o_text("]");
|
|
}
|
|
|
|
list
|
|
flatten(list c, object o)
|
|
{
|
|
if (__id(o) == INTEGER_ID) {
|
|
c.append(o);
|
|
} else {
|
|
l_ucall(o, flatten, 1, c);
|
|
}
|
|
|
|
c;
|
|
}
|
|
|
|
integer
|
|
main(void)
|
|
{
|
|
list l;
|
|
|
|
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(list(), l));
|
|
o_byte('\n');
|
|
|
|
return 0;
|
|
}
|