Expand/Shrink

join

Definition: sequence res = join(sequence s, object delim=" ", lastdelim=delim, string fmt="")
Description: Concatenate all top-level elements of s. Optionally, a delimiter can be specified to be placed between each element, and an override for the last one. If you do not need a delimeter, specify "" or {}.
Fairly obviously if a non-empty fmt is provided it is applied, via sprintf(), to each element of s as part of the joining process.

Returns a string or sequence.
pwa/p2js: Supported.
Comments: join is much more suited to string processing than flatten.
Example 1: Using the delimiter argument(s). When specified lastdelim is typically either " and " or ", and ".
s = join({"one", "two", "three"}, ", ", ", and ")
-- s is "one, two, and three"

Exactly the same result is returned whether the delimiter is a single (ascii) character, or the matching string of length 1, so for example you could use either "\n" or '\n'.
Example 2: If no delimeter is required, specify a null string or an empty sequence.
s = join({"one\n", "two\n", "three\n"}, "")
-- s is "one\ntwo\nthree\n"
Example 3: join is not restricted to string processing.
s = join({{1,"file1"},{2,"file2"},{1,"file3"},{3,"file4"}},{})
-- s is {1,"file1",2,"file2",1,"file3",3,"file4"}
ptrsets = {{#040010B8,#040012C4,#0400106C},{#040011A0},{#0400147A,#0400100A}}
inorder = sort(join(ptrsets,{})) -- (might be one for flatten though)
-- inorder is {#0400100A,#0400106C,#040010B8,#040011A0,#040012C4,#0400147A}
Implementation: See builtins\pflatten.e (an autoinclude) for details of the actual implementation.
See Also: flatten, columnize, join_path