RosettaCodeData/Task/Multiple-distinct-objects/Aime/multiple-distinct-objects.aime

67 lines
961 B
Plaintext

void
show_sublist(list l)
{
integer i;
i = 0;
while (i < l_length(l)) {
if (i) {
o_space(1);
}
o_integer(l_q_integer(l, i));
i += 1;
}
}
void
show_list(list l)
{
integer i;
i = 0;
while (i < l_length(l)) {
o_text(" [");
show_sublist(l_q_list(l, i));
o_text("]");
i += 1;
}
o_byte('\n');
}
list
multiple_distinct(integer n, object o)
{
list l;
while (n) {
l_append(l, o);
n -= 1;
}
return l;
}
integer
main(void)
{
list l, z;
# create a list of integers - `3' will serve as initializer
l = multiple_distinct(8, 3);
l_clear(l);
# create a list of distinct lists - `z' will serve as initializer
l_append(z, 4);
l = multiple_distinct(8, z);
# modify one of the sublists
l_r_integer(l_q_list(l, 3), 0, 7);
# display the list of lists
show_list(l);
return 0;
}