The output list M takes the first element of each Li, i=1,...,n, followed by the second element of Li, i=1,...,n, and so forth.
i1 : mingle {{a1, a2, a3}, {b1, b2, b3}, {c1, c2, c3}}
o1 = {a1, b1, c1, a2, b2, c2, a3, b3, c3}
o1 : List
|
The lists can have different lengths. After a list is exhausted, it will be silently ignored.
i2 : mingle {{a1, a2, a3, a4}, {b1, b2}, {c1}}
o2 = {a1, b1, c1, a2, b2, a3, a4}
o2 : List
|
To transpose a nested list (thinking of it as a matrix), try using mingle with pack.
i3 : pack(3, mingle ((a1, a2, a3), (b1, b2, b3), (c1, c2, c3)))
o3 = {{a1, b1, c1}, {a2, b2, c2}, {a3, b3, c3}}
o3 : List
|
Notice from the previous example that mingle accepts sequences and other types of BasicLists as input, but the output will always be a List.
Further examples:
i4 : concatenate mingle( {"a","b","c"} , {",",","} )
o4 = a,b,c
|
i5 : netList pack(3, mingle( (0..5), apply(6, i -> i^2), apply(6, i -> i^3)))
+-+--+---+
o5 = |0|0 |0 |
+-+--+---+
|1|1 |1 |
+-+--+---+
|2|4 |8 |
+-+--+---+
|3|9 |27 |
+-+--+---+
|4|16|64 |
+-+--+---+
|5|25|125|
+-+--+---+
|
The object mingle is a compiled function.