| "Given zero or more argument [[streams|iterables]], return a |
| new sequence containing all elements of every given stream. |
| The elements of the resulting stream are ordered first |
| according to the stream in which they occur, and then |
| according to where they occur in that stream. If there are |
| no arguments, or if none of the argument streams contain |
| any elements, return the empty sequence. |
| |
| For example, the expression |
| |
| concatenate(1..3, [0.0], {\"hello\", \"world\"}) |
| |
| results in the sequence `[1, 2, 3, 0.0, \"hello\", \"world\"]` |
| which has the type `[Integer|Float|String*]`. |
| |
| To concatentate `String`s, use [[String.sum]]. When a lazy |
| stream is desired, use [[expand]]." |
| see (`function expand`, |
| `function Iterable.chain`, |
| `function Sequential.append`, |
| `function String.sum`) |
| tagged("Streams") |
| shared Element[] concatenate<Element>( |
| "The streams to concatenate." |
| {Element*}* iterables) |
| => [ for (it in iterables) for (val in it) val ]; |
| |