28 lines
655 B
Text
28 lines
655 B
Text
|
|
// First, we'll define a general-purpose zip() to zip
|
||
|
|
any
|
||
|
|
// number of lists together.
|
||
|
|
function zip(...)
|
||
|
|
{
|
||
|
|
variable result := [];
|
||
|
|
variable list_num := 0;
|
||
|
|
iterate(arg; arguments)
|
||
|
|
{
|
||
|
|
variable elem_num := 0;
|
||
|
|
iterate (x; arg)
|
||
|
|
{
|
||
|
|
if (elem_num >= length(result))
|
||
|
|
result[elem_num] := <<(* --> "")>>;;
|
||
|
|
result[elem_num][list_num] := x;
|
||
|
|
++elem_num;
|
||
|
|
};
|
||
|
|
++list_num;
|
||
|
|
};
|
||
|
|
return result;
|
||
|
|
};
|
||
|
|
|
||
|
|
immutable a := ["a", "b", "c"],
|
||
|
|
b := ["A", "B", "C"],
|
||
|
|
c := [1, 2, 3];
|
||
|
|
iterate (x; zip(a, b, c))
|
||
|
|
print(x[0], x[1], x[2], "\n");;
|