Array concatenation: Difference between revisions

m
syntax highlighting fixup automation
(Array concatenation in Rapira)
m (syntax highlighting fixup automation)
Line 10:
 
=={{header|11l}}==
<langsyntaxhighlight lang=11l>V arr1 = [1, 2, 3]
V arr2 = [4, 5, 6]
print(arr1 [+] arr2)</langsyntaxhighlight>
{{out}}
<pre>
Line 21:
In order for this to work, you'll either need to use <code>malloc()</code> or know a memory location of "free space" at compile time. This example shall use the latter.
 
<langsyntaxhighlight lang=68000devpac>ArrayRam equ $00FF2000 ;this label points to 4k of free space.
 
;concatenate Array1 + Array2
Line 43:
DC.W 1,2,3,4,5
Array2:
DC.W 6,7,8,9,10</langsyntaxhighlight>
 
=={{header|8th}}==
<langsyntaxhighlight lang=Forth>
[1,2,3] [4,5,6] a:+ .
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 56:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<langsyntaxhighlight lang=AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program concAreaString.s */
Line 158:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
 
=={{header|ABAP}}==
The concept of arrays does not exist in ABAP, instead internal tables are used. This works in ABAP version 7.40 and above.
 
<langsyntaxhighlight lang=ABAP>
report z_array_concatenation.
 
Line 174:
write <line>.
endloop.
</syntaxhighlight>
</lang>
 
{{out}}
Line 184:
=={{header|ACL2}}==
This is for lists, not arrays; ACL2's array support is limited.
<syntaxhighlight lang =Lisp>(append xs ys)</langsyntaxhighlight>
 
=={{header|Action!}}==
<langsyntaxhighlight lang=Action!>BYTE FUNC Concat(INT ARRAY src1,src2,dst BYTE size1,size2)
BYTE i
 
Line 237:
Test(a2,a1,6,4)
Test(a3,a2,5,4)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Array_concatenation.png Screenshot from Atari 8-bit computer]
Line 249:
 
=={{header|ActionScript}}==
<langsyntaxhighlight lang=ActionScript>var array1:Array = new Array(1, 2, 3);
var array2:Array = new Array(4, 5, 6);
var array3:Array = array1.concat(array2); //[1, 2, 3, 4, 5, 6]</langsyntaxhighlight>
 
=={{header|Ada}}==
In [[Ada]] arrays are concatenated using the operation &. It works with any one dimensioned array:
<langsyntaxhighlight lang=Ada>type T is array (Positive range <>) of Integer;
X : T := (1, 2, 3);
Y : T := X & (4, 5, 6); -- Concatenate X and (4, 5, 6)</langsyntaxhighlight>
 
=={{header|Aime}}==
<langsyntaxhighlight lang=aime>ac(list a, b)
{
list o;
Line 282:
 
0;
}</langsyntaxhighlight>
{{Out}}
<pre> 1 2 3 4 5 6 7 8</pre>
Line 293:
<!-- {{not tested with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8.8d.fc9.i386]}} -->
Includes operators for ''appending'' and ''prefixing'' an array to an existing flexible array:
<langsyntaxhighlight lang=Algol68>MODE ARGTYPE = INT;
MODE ARGLIST = FLEX[0]ARGTYPE;
 
Line 322:
 
VOID(a +=: b);
print(("a +=: b", b, new line))</langsyntaxhighlight>
<pre>
a + b +1 +2 +3 +4 +5
Line 331:
=={{header|ALGOL W}}==
Algol W does not allow procedures to return arrays and has no mechanism for procedures to find the bounds of their parameters, so the caller must supply an array to concatenate into and the bounds of the arrays.
<langsyntaxhighlight lang=algolw>begin
integer array a ( 1 :: 5 );
integer array b ( 2 :: 4 );
Line 366:
for cPos := 1 until 8 do writeon( i_w := 1, s_w := 1, c( cPos ) )
 
end.</langsyntaxhighlight>
{{out}}
<pre>
Line 373:
 
=={{header|Amazing Hopper}}==
<langsyntaxhighlight lang=Amazing Hopper>
#include <hbasic.h>
Begin
Line 382:
Concat (a1, a2) and Print ( a2, Newl )
End
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 389:
 
=={{header|AntLang}}==
<langsyntaxhighlight lang=AntLang>a:<1; <2; 3>>
b: <"Hello"; 42>
c: a,b</langsyntaxhighlight>
 
=={{header|Apex}}==
<langsyntaxhighlight lang=apex>List<String> listA = new List<String> { 'apple' };
List<String> listB = new List<String> { 'banana' };
listA.addAll(listB);
System.debug(listA); // Prints (apple, banana)</langsyntaxhighlight>
 
=={{header|APL}}==
<langsyntaxhighlight lang=apl>
1 2 3 , 4 5 6
1 2 3 4 5 6
</syntaxhighlight>
</lang>
 
=={{header|AppleScript}}==
<langsyntaxhighlight lang=AppleScript>
set listA to {1, 2, 3}
set listB to {4, 5, 6}
return listA & listB
</syntaxhighlight>
</lang>
 
{{out}}
Line 422:
{{trans|JavaScript}}
 
<langsyntaxhighlight lang=applescript>on run
 
concat([["alpha", "beta", "gamma"], ¬
Line 440:
end concat
 
</syntaxhighlight>
</lang>
 
{{Out}}
Line 448:
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<langsyntaxhighlight lang=ARM Assembly>
/* ARM assembly Raspberry PI */
/* program concAreaString.s */
Line 620:
.Ls_magic_number_10: .word 0x66666667
 
</syntaxhighlight>
</lang>
 
=={{header|Arturo}}==
<langsyntaxhighlight lang=rebol>arr1: [1 2 3]
arr2: ["four" "five" "six"]
print arr1 ++ arr2</langsyntaxhighlight>
{{out}}
Line 636:
The following may seem frightening. However, it probably compiles down to two calls to __builtin_memcpy. All the complexity is to make sure those calls are done ''correctly''.
 
<langsyntaxhighlight lang=ats>(* The Rosetta Code array concatenation task, in ATS2. *)
 
(* In a way, the task is misleading: in a language such as ATS, one
Line 757:
free lst (* The list is linear and must be freed. *)
end
end</langsyntaxhighlight>
 
{{out}}
Line 772:
=== True Arrays ===
{{works with|AutoHotkey_L}}
<langsyntaxhighlight lang=AHK>List1 := [1, 2, 3]
List2 := [4, 5, 6]
cList := Arr_concatenate(List1, List2)
Line 789:
res .= ", " value
return "[" SubStr(res, 3) "]"
}</langsyntaxhighlight>
=== Legacy versions ===
[[AutoHotkey_Basic]] does not have real Arrays, but the user can implement them quite easily. For example:
<langsyntaxhighlight lang=AutoHotkey>List1 = 1,2,3
List2 = 4,5,6
 
Line 828:
List .= (A_Index = 1 ? "" : ",") %Array%%A_Index%
Return, List
}</langsyntaxhighlight>
Message box shows:
<pre>1,2,3,4,5,6</pre>
Line 838:
 
<langsyntaxhighlight lang=AutoIt>
_ArrayConcatenate($avArray, $avArray2)
Func _ArrayConcatenate(ByRef $avArrayTarget, Const ByRef $avArraySource, $iStart = 0)
Line 857:
Return $iUBoundTarget + $iUBoundSource
EndFunc ;==>_ArrayConcatenate
</syntaxhighlight>
</lang>
 
=={{header|Avail}}==
<langsyntaxhighlight lang=Avail><1, 2, 3> ++ <¢a, ¢b, ¢c></langsyntaxhighlight>
 
=={{header|AWK}}==
<langsyntaxhighlight lang=AWK>#!/usr/bin/awk -f
BEGIN {
split("cul-de-sac",a,"-")
Line 881:
c[++nc]=b[i]
}
}</langsyntaxhighlight>
 
=={{header|Babel}}==
<langsyntaxhighlight lang=babel>[1 2 3] [4 5 6] cat ;</langsyntaxhighlight>
 
{{Out}}
Line 890:
 
=={{header|bash}}==
<langsyntaxhighlight lang=bash>x=("1 2" "3 4")
y=(5 6)
sum=( "${x[@]}" "${y[@]}" )
Line 898:
3 4
5
6</langsyntaxhighlight>
 
=={{header|BASIC}}==
==={{header|Applesoft BASIC}}===
<langsyntaxhighlight lang=gwbasic> 10 LET X = 4:Y = 5
20 DIM A(X - 1),B(Y - 1),C(X + Y - 1)
30 FOR I = 1 TO X:A(I - 1) = I: NEXT
Line 908:
50 FOR I = 1 TO X:C(I - 1) = A(I - 1): NEXT
60 FOR I = 1 TO Y:C(X + I - 1) = B(I - 1): NEXT
70 FOR I = 1 TO X + Y: PRINT MID$ (" ",1,I > 1)C(I - 1);: NEXT</langsyntaxhighlight>
==={{header|BaCon}}===
<langsyntaxhighlight lang=bacon>DECLARE a[] = { 1, 2, 3, 4, 5 }
DECLARE b[] = { 6, 7, 8, 9, 10 }
 
Line 918:
c[x] = a[x]
c[x+5] = b[x]
NEXT</langsyntaxhighlight>
 
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
<langsyntaxhighlight lang=bbcbasic> DIM a(3), b(4)
a() = 1, 2, 3, 4
b() = 5, 6, 7, 8, 9
Line 940:
SYS "RtlMoveMemory", ^c(0), ^a(0), s%*na%
SYS "RtlMoveMemory", ^c(na%), ^b(0), s%*nb%
ENDPROC</langsyntaxhighlight>
 
==={{header|Commodore BASIC}}===
(Based on ZX Spectrum BASIC version)
<langsyntaxhighlight lang=basic>10 X=4 : Y=5
20 DIM A(X) : DIM B(Y) : DIM C(X+Y)
30 FOR I=1 TO X
Line 960:
150 FOR I=1 TO X+Y
160 : PRINT C(I);
170 NEXT</langsyntaxhighlight>
 
=={{header|BASIC256}}==
<langsyntaxhighlight lang=basic256>arraybase 1
global c
 
Line 998:
 
return nt
end function</langsyntaxhighlight>
{{out}}
<pre>1, 2, 3, 4, 5, 6, 7, 8, 9, 10</pre>
Line 1,004:
 
=={{header|BQN}}==
<syntaxhighlight lang =bqn>1‿2‿3 ∾ 4‿5‿6</langsyntaxhighlight>
 
=={{header|Bracmat}}==
Line 1,028:
=={{header|Burlesque}}==
 
<langsyntaxhighlight lang=burlesque>
blsq ) {1 2 3}{4 5 6}_+
{1 2 3 4 5 6}
</syntaxhighlight>
</lang>
 
=={{header|C}}==
A way to concatenate two C arrays when you know their size (and usually so it is)
<langsyntaxhighlight lang=c>#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Line 1,066:
free(c);
return EXIT_SUCCCESS;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
<langsyntaxhighlight lang=csharp>using System;
 
namespace RosettaCode
Line 1,090:
}
}
}</langsyntaxhighlight>
 
Alternatively, using LINQ extension methods:
 
{{works with|C sharp|C#|3}}
<langsyntaxhighlight lang=csharp>using System.Linq;
 
class Program
Line 1,106:
int[] c = a.Concat(b).ToArray();
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
<langsyntaxhighlight lang=cpp>#include <vector>
#include <iostream>
 
Line 1,122:
for (int i = 0; i < a.size(); ++i)
std::cout << "a[" << i << "] = " << a[i] << "\n";
}</langsyntaxhighlight>
 
{{works with|C++11}}
Similar to above but using initialization schematics.
 
<langsyntaxhighlight lang=cpp>#include <vector>
#include <iostream>
 
Line 1,139:
std::cout << std::endl;
return 0;
}</langsyntaxhighlight>
 
This is another solution with function level templates and pointers.
 
<langsyntaxhighlight lang=cpp>#include <iostream>
 
using namespace std;
Line 1,192:
 
return 0;
}</langsyntaxhighlight>
 
=={{header|Ceylon}}==
<langsyntaxhighlight lang=ceylon>shared void arrayConcatenation() {
value a = Array {1, 2, 3};
value b = Array {4, 5, 6};
value c = concatenate(a, b);
print(c);
}</langsyntaxhighlight>
 
=={{header|Clojure}}==
<langsyntaxhighlight lang=clojure>(concat [1 2 3] [4 5 6])</langsyntaxhighlight>
The inputs can be any collection, including Java arrays, and returns a lazy sequence of the elements.
 
A vector is the closest Clojure thing to an array. If a vector is wanted, then use
<langsyntaxhighlight lang=clojure>(into [1 2 3] [4 5 6])</langsyntaxhighlight>
 
=={{header|COBOL}}==
<langsyntaxhighlight lang=COBOL> identification division.
program-id. array-concat.
 
Line 1,266:
.
 
end program array-concat.</langsyntaxhighlight>
{{out}}
<pre>prompt$ cobc -xjd array-concatenation.cob
Line 1,273:
 
=={{header|CoffeeScript}}==
<langsyntaxhighlight lang=coffeescript>
# like in JavaScript
a = [1, 2, 3]
b = [4, 5, 6]
c = a.concat b
</syntaxhighlight>
</lang>
 
=={{header|Common Lisp}}==
<code>[http://www.lispworks.com/documentation/HyperSpec/Body/f_concat.htm concatenate]</code> is a general function for concatenating any type of sequence. It takes the type of sequence to produce, followed by any number of sequences of any type.
<langsyntaxhighlight lang=lisp>(concatenate 'vector #(0 1 2 3) #(4 5 6 7))
=> #(0 1 2 3 4 5 6 7)</langsyntaxhighlight>
===Alternate solution===
I use [https://franz.com/downloads/clp/survey Allegro CL 10.1]
 
<langsyntaxhighlight lang=lisp>
(setf arr1 (make-array '(3) :initial-contents '(1 2 3)))
(setf arr2 (make-array '(3) :initial-contents '(4 5 6)))
Line 1,301:
(write arr5)
(terpri)
</syntaxhighlight>
</lang>
Output:
<pre>
Line 1,310:
=={{header|Component Pascal}}==
BlackBox Component Builder
<langsyntaxhighlight lang=oberon2>
MODULE ArrayConcat;
IMPORT StdLog;
Line 1,366:
 
END ArrayConcat.
</syntaxhighlight>
</lang>
Execute: ^Q ArrayConcat.Do <br/>
{{out}}
Line 1,377:
 
=={{header|Crystal}}==
<langsyntaxhighlight lang=ruby>arr1 = [1, 2, 3]
arr2 = ["foo", "bar", "baz"]
arr1 + arr2 #=> [1, 2, 3, "foo", "bar", "baz"]</langsyntaxhighlight>
 
=={{header|D}}==
<langsyntaxhighlight lang=d>import std.stdio: writeln;
void main() {
Line 1,389:
writeln(a, " ~ ", b, " = ", a ~ b);
}</langsyntaxhighlight>
{{out}}
<pre>[1, 2] ~ [4, 5, 6] = [1, 2, 4, 5, 6]</pre>
Line 1,395:
=={{header|Delphi}}==
2022/07/13
<langsyntaxhighlight lang=delphi>
// This example works on stuff as old as Delphi 5 (maybe older)
// Modern Delphi / Object Pascal has both
Line 1,449:
Writeln( #13#10, Join(names, #13#10 ) );
end.
</syntaxhighlight>
</lang>
Output:
Korra Asami Bolin Mako
Line 1,467:
It has running commentary about memory management that isn’t exactly correct.<br>
Delphi handles dynamic array memory very well.
<langsyntaxhighlight lang=delphi>type
TReturnArray = array of integer; //you need to define a type to be able to return it
 
Line 1,504:
Finalize(r1); //IMPORTANT!
ShowMessage(IntToStr(High(r1)));
end;</langsyntaxhighlight>
 
=={{header|Diego}}==
<langsyntaxhighlight lang=diego>set_namespace(rosettacode)_me();
 
add_ary(a)_values(1,2,3);
Line 1,515:
me_msg()_calc([a]+[b]); // alternative
 
reset_namespace[];</langsyntaxhighlight>
 
=={{header|Dyalect}}==
 
<langsyntaxhighlight lang=dyalect>var xs = [1,2,3]
var ys = [4,5,6]
var alls = Array.Concat(xs, ys)
print(alls)</langsyntaxhighlight>
 
{{out}}
Line 1,530:
=={{header|E}}==
 
<langsyntaxhighlight lang=e>? [1,2] + [3,4]
# value: [1, 2, 3, 4]</langsyntaxhighlight>
 
=={{header|EasyLang}}==
Line 1,542:
i += 1
.
print c[]</langsyntaxhighlight>
 
=={{header|EchoLisp}}==
The native operators are '''append''' for lists, and '''vector-append''' for vectors (1-dim arrays).
<langsyntaxhighlight lang=scheme>
;;;; VECTORS
(vector-append (make-vector 6 42) (make-vector 4 666))
Line 1,561:
 
 
</syntaxhighlight>
</lang>
 
=={{header|ECL}}==
Line 1,569:
B := [5, 6, 7, 8];
 
C := A + B;</langsyntaxhighlight>
 
=={{header|Efene}}==
Line 1,575:
using the ++ operator and the lists.append function
 
<langsyntaxhighlight lang=efene>
@public
run = fn () {
Line 1,586:
io.format("~p~n", [C])
io.format("~p~n", [D])
}</langsyntaxhighlight>
 
=={{header|EGL}}==
{{works with|EDT}}
<langsyntaxhighlight lang=EGL>
program ArrayConcatenation
function main()
Line 1,604:
end
end
</syntaxhighlight>
</lang>
 
=={{header|Ela}}==
<langsyntaxhighlight lang=ela>xs = [1,2,3]
ys = [4,5,6]
xs ++ ys</langsyntaxhighlight>
{{out}}<pre>[1,2,3,4,5,6]</pre>
 
=={{header|Elena}}==
ELENA 5.0 :
<langsyntaxhighlight lang=elena>import extensions;
 
public program()
Line 1,624:
"(",a.asEnumerable(),") + (",b.asEnumerable(),
") = (",(a + b).asEnumerable(),")").readChar();
}</langsyntaxhighlight>
{{out}}
<pre>
Line 1,631:
 
=={{header|Elixir}}==
<langsyntaxhighlight lang=elixir>iex(1)> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]
iex(2)> Enum.concat([[1, [2], 3], [4], [5, 6]])
[1, [2], 3, 4, 5, 6]
iex(3)> Enum.concat([1..3, [4,5,6], 7..9])
[1, 2, 3, 4, 5, 6, 7, 8, 9]</langsyntaxhighlight>
 
=={{header|Elm}}==
<langsyntaxhighlight lang=elm>import Element exposing (show, toHtml) -- elm-package install evancz/elm-graphics
import Html.App exposing (beginnerProgram)
import Array exposing (Array, append, initialize)
Line 1,657:
}
 
-- Array.fromList [0,1,2,3,4,5]</langsyntaxhighlight>
 
=={{header|Emacs Lisp}}==
The ''vconcat'' function returns a new array containing all the elements of it's arguments.
 
<langsyntaxhighlight lang=lisp>(vconcat '[1 2 3] '[4 5] '[6 7 8 9])
=> [1 2 3 4 5 6 7 8 9]</langsyntaxhighlight>
 
=={{header|Erlang}}==
Line 1,670:
 
On the shell,
<langsyntaxhighlight lang=erlang>
1> [1, 2, 3] ++ [4, 5, 6].
[1,2,3,4,5,6]
Line 1,676:
[1,2,3,4,5,6]
3>
</syntaxhighlight>
</lang>
 
=={{header|ERRE}}==
Line 1,711:
 
END PROGRAM
</syntaxhighlight>
</lang>
 
=={{header|Euphoria}}==
<langsyntaxhighlight lang=Euphoria>sequence s1,s2,s3
s1 = {1,2,3}
s2 = {4,5,6}
s3 = s1 & s2
? s3</langsyntaxhighlight>
 
{{out}}
Line 1,725:
=={{header|F Sharp|F#}}==
Array concatenation.
<langsyntaxhighlight lang=fsharp>let a = [|1; 2; 3|]
let b = [|4; 5; 6;|]
let c = Array.append a b</langsyntaxhighlight>
List concatenation (@ and List.append are equivalent).
<langsyntaxhighlight lang=fsharp>let x = [1; 2; 3]
let y = [4; 5; 6]
let z1 = x @ y
let z2 = List.append x y</langsyntaxhighlight>
 
=={{header|Factor}}==
<syntaxhighlight lang =factor>append</langsyntaxhighlight>
 
'''Example''':
<langsyntaxhighlight lang=factor>( scratchpad ) USE: sequences
( scratchpad ) { 1 2 } { 3 4 } append .
{ 1 2 3 4 }</langsyntaxhighlight>
 
=={{header|Fantom}}==
Line 1,746:
In fansh:
 
<langsyntaxhighlight lang=fantom>
> a := [1,2,3]
> b := [4,5,6]
Line 1,752:
> a
[1,2,3,4,5,6]
</syntaxhighlight>
</lang>
 
Note 'addAll' is destructive. Write 'a.dup.addAll(b)' to create a fresh list.
Line 1,758:
=={{header|FBSL}}==
Array concatenation:
<langsyntaxhighlight lang=qbasic>#APPTYPE CONSOLE
 
DIM aint[] ={1, 2, 3}, astr[] ={"one", "two", "three"}, asng[] ={!1, !2, !3}
Line 1,766:
NEXT
 
PAUSE</langsyntaxhighlight>
{{out}}
<pre>1 2 3 one two three 1.000000 2.000000 3.000000
Line 1,772:
 
=={{header|Forth}}==
<langsyntaxhighlight lang=Forth>: $!+ ( a u a' -- a'+u )
2dup + >r swap move r> ;
: cat ( a2 u2 a1 u1 -- a3 u1+u2 )
Line 1,785:
801842600: 03 00 00 00 00 00 00 00 - 04 00 00 00 00 00 00 00 ................
801842610: 05 00 00 00 00 00 00 00 - ........
</syntaxhighlight>
</lang>
 
=={{header|Fortran}}==
{{works with|Fortran|90 and later}}
<langsyntaxhighlight lang=fortran>program Concat_Arrays
implicit none
 
Line 1,805:
d = [a, b] ! (/a, b/)
print*, d
end program Concat_Arrays</langsyntaxhighlight>
 
=={{header|Free Pascal}}==
Since FPC (Free Pascal compiler) version 3.2.0., the dynamic array concatenation operator <code>+</code> is available, provided <code>{$modeSwitch arrayOperators+}</code> (which is enabled by default in <code>{$mode Delphi}</code>).
<langsyntaxhighlight lang=pascal> array2 := array0 + array1</langsyntaxhighlight>
Alternatively, one could use <code>concat()</code> which is independent of above modeswitch and mode:
<langsyntaxhighlight lang=pascal> array2 := concat(array0, array1);</langsyntaxhighlight>
Both options do not require any libraries.
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang=freebasic>
' FB 1.05.0 Win64
 
Line 1,842:
Print "Press any key to quit the program"
Sleep
</syntaxhighlight>
</lang>
 
{{out}}
Line 1,850:
 
=={{header|Frink}}==
<langsyntaxhighlight lang=frink>
a = [1,2]
b = [3,4]
a.pushAll[b]
</syntaxhighlight>
</lang>
 
=={{header|FunL}}==
<langsyntaxhighlight lang=funl>arr1 = array( [1, 2, 3] )
arr2 = array( [4, 5, 6] )
arr3 = array( [7, 8, 9] )
 
println( arr1 + arr2 + arr3 )</langsyntaxhighlight>
 
{{out}}
Line 1,873:
Array concatenation is done with the built-in function <code>concat</code>, which can take any number of arguments:
 
<langsyntaxhighlight lang=Futhark>
concat as bs cd
</syntaxhighlight>
</lang>
 
=={{header|FutureBasic}}==
 
<langsyntaxhighlight lang=FutureBasic>void local fn DoIt
CFArrayRef array = @[@"Alpha",@"Bravo",@"Charlie"]
print array
Line 1,891:
fn DoIt
 
HandleEvents</langsyntaxhighlight>
Output:
<pre>
Line 1,911:
=={{header|Gambas}}==
'''[https://gambas-playground.proko.eu/?gist=314bea6fba7f177a1cfaec8a7a8b5ccb Click this link to run this code]'''
<langsyntaxhighlight lang=gambas>Public Sub Main()
Dim sString1 As String[] = ["The", "quick", "brown", "fox"]
Dim sString2 As String[] = ["jumped", "over", "the", "lazy", "dog"]
Line 1,919:
Print sString1.Join(" ")
 
End</langsyntaxhighlight>
Output:
<pre>
Line 1,926:
 
=={{header|GAP}}==
<langsyntaxhighlight lang=gap># Concatenate arrays
Concatenation([1, 2, 3], [4, 5, 6], [7, 8, 9]);
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
Line 1,935:
Append(a, [7, 8, 9]);
a;
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]</langsyntaxhighlight>
 
=={{header|Genie}}==
<langsyntaxhighlight lang=genie>[indent=4]
/*
Array concatenation, in Genie
Line 1,965:
stdout.printf("y: "); int_show_array(y)
stdout.printf("z: "); int_show_array(z)
print "%d elements in new array", z.length</langsyntaxhighlight>
 
{{out}}
Line 1,977:
=={{header|GLSL}}==
This macro concatenates two arrays to form a new array. The first parameter is the type of the array:
<langsyntaxhighlight lang=glsl>
#define array_concat(T,a1,a2,returned) \
T[a1.length()+a2.length()] returned; \
Line 1,988:
} \
}
</syntaxhighlight>
</lang>
The macro can be used like this:
<langsyntaxhighlight lang=glsl>
array_concat(float,float[](1.,2.,3.),float[](4.,5.,6.),returned);
int i = returned.length();
</syntaxhighlight>
</lang>
 
=={{header|Go}}==
<langsyntaxhighlight lang=go>package main
 
import "fmt"
Line 2,030:
fmt.Println(n)
 
}</langsyntaxhighlight>
{{out}}
<pre>
Line 2,038:
</pre>
Array concatenation needs can vary. Here is another set of examples that illustrate different techniques.
<langsyntaxhighlight lang=go>package main
 
import (
Line 2,094:
test2_c := ArrayConcat(test2_a, test2_b).([]string)
fmt.Println(test2_a, " + ", test2_b, " = ", test2_c)
}</langsyntaxhighlight>
{{out}}
<pre>
Line 2,103:
=={{header|Gosu}}==
 
<langsyntaxhighlight lang=gosu>
var listA = { 1, 2, 3 }
var listB = { 4, 5, 6 }
Line 2,110:
 
print( listC ) // prints [1, 2, 3, 4, 5, 6]
</syntaxhighlight>
</lang>
 
=={{header|Groovy}}==
Solution:
<langsyntaxhighlight lang=groovy>def list = [1, 2, 3] + ["Crosby", "Stills", "Nash", "Young"]</langsyntaxhighlight>
 
Test:
<syntaxhighlight lang =groovy>println list</langsyntaxhighlight>
 
{{out}}
Line 2,124:
=={{header|Haskell}}==
A list is in Haskell one of the most common composite data types (constructed from other types). In the documentation we read for the append operation ++:
<langsyntaxhighlight lang=haskell>(++) :: [a] -> [a] -> [a]</langsyntaxhighlight>
Append two lists, i.e.:<pre>
[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
Line 2,131:
 
This operator could be defined from the scratch using explicit recursion:
<langsyntaxhighlight lang=haskell>
[] ++ x = x
(h:t) ++ y = h : (t ++ y)
</syntaxhighlight>
</lang>
or folding
<langsyntaxhighlight lang=haskell>
x ++ y = foldr (:) y x
</syntaxhighlight>
</lang>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang=HicEst>REAL :: a(7), b(3), c(10)
 
c = a
DO i = 1, LEN(b)
c(i + LEN(a)) = b(i)
ENDDO</langsyntaxhighlight>
 
=={{header|Hy}}==
<langsyntaxhighlight lang=hy>=> (setv a [1 2 3])
=> a
[1, 2, 3]
Line 2,163:
 
=> (+ [1 2] [3 4] [5 6]) ; can accept multiple arguments
[1, 2, 3, 4, 5, 6]</langsyntaxhighlight>
 
=={{header|i}}==
<langsyntaxhighlight lang=i>main
a $= [1, 2, 3]
b $= [4, 5, 6]
print(a + b)
}</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Both languages have list concatenation built in. Lists are fully dynamic arrays which can be truncated or extended at either end.
<langsyntaxhighlight lang=icon>
procedure main()
L1 := [1, 2, 3, 4]
Line 2,186:
write()
end
</syntaxhighlight>
</lang>
 
=={{header|IDL}}==
 
Array concatenation can mean different things, depending on the number of dimensions of the arguments and the result. In the simplest case, with 1-dimensional arrays to begin with, there are two obvious ways to concatenate them. If my arrays are these:
<langsyntaxhighlight lang=IDL>
> a = [1,2,3]
> b = [4,5,6]
Line 2,202:
> print,b
4 5 6
</syntaxhighlight>
</lang>
Then they can be concatenated "at the ends":
<langsyntaxhighlight lang=IDL>
> help,[a,b]
<Expression> INT = Array[6]
> print,[a,b]
1 2 3 4 5 6
</syntaxhighlight>
</lang>
or "at the sides":
<langsyntaxhighlight lang=IDL>
> help,[[a],[b]]
<Expression> INT = Array[3, 2]
Line 2,217:
1 2 3
4 5 6
</syntaxhighlight>
</lang>
Note that this requires that the arrays have the same size at the side at which they are concatenated:
<langsyntaxhighlight lang=IDL>
> b = transpose(b)
> help,b
Line 2,233:
Unable to concatenate variables because the dimensions do not agree: B.
Execution halted at: $MAIN$
</syntaxhighlight>
</lang>
This can get a lot more complicated as a 3x4x5-element three-dimensional array can be concatenated with a 5x2x3-element array at exactly two "surfaces".
 
Line 2,245:
 
=={{header|Inform 7}}==
<langsyntaxhighlight lang=inform7>let A be {1, 2, 3};
let B be {4, 5, 6};
add B to A;</langsyntaxhighlight>
 
=={{header|Ioke}}==
<langsyntaxhighlight lang=ioke>iik> [1,2,3] + [3,2,1]
[1,2,3] + [3,2,1]
+> [1, 2, 3, 3, 2, 1]</langsyntaxhighlight>
 
=={{header|J}}==
Line 2,258:
 
'''Example''':
<langsyntaxhighlight lang=j> array1 =: 1 2 3
array2 =: 4 5 6
array1 , array2
1 2 3 4 5 6</langsyntaxhighlight>
 
Of course, in J, array concatenation works (consistently) on arrays of any rank or dimension.
Line 2,267:
The verb <code>,</code> concatenates by treating the argument array with the largest number of dimensions as a list. Other primary verbs concatenate along other axes.
 
<langsyntaxhighlight lang=j> ]ab=: 3 3 $ 'aaabbbccc'
aaa
bbb
Line 2,299:
3 6
$ ab ,: wx NB. applies to new (higher) axis
2 3 3</langsyntaxhighlight>
 
=={{header|Java}}==
<langsyntaxhighlight lang=java5>public static Object[] concat(Object[] arr1, Object[] arr2) {
Object[] res = new Object[arr1.length + arr2.length];
 
Line 2,309:
 
return res;
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
The <code>Array.concat()</code> method returns a new array comprised of this array joined with other array(s) and/or value(s).
<langsyntaxhighlight lang=javascript>var a = [1,2,3],
b = [4,5,6],
c = a.concat(b); //=> [1,2,3,4,5,6]</langsyntaxhighlight>
 
 
Line 2,323:
See, for a function with an analogous type signature, '''concat''' in the Haskell Prelude.
 
<langsyntaxhighlight lang=javascript>(function () {
'use strict';
 
Line 2,338:
);
 
})();</langsyntaxhighlight>
 
{{Out}}
Line 2,350:
To concatenate the component arrays of an array, A, the <tt>add</tt> filter can be used: <tt>A|add</tt>
 
jq also supports streams, which are somewhat array-like, so it may be worth mentioning that the concatenation of two or more streams can be accomplished using "," instead of "+". <langsyntaxhighlight lang=jq>[1,2] + [3] + [null] # => [1,2,3,null]
 
[range(1;3), 3, null] # => [1,2,3,null]
</syntaxhighlight>
</lang>
 
=={{header|Julia}}==
<langsyntaxhighlight lang=julia>a = [1,2,3]
b = [4,5,6]
ab = [a;b]
Line 2,364:
ab = hcat(a,b) #ab -> 3x2 matrix
# the append!(a,b) method is mutating, appending `b` to `a`
append!(a,b) # a now equals [1,2,3,4,5,6]</langsyntaxhighlight>
 
=={{header|K}}==
<syntaxhighlight lang=K>
<lang K>
a: 1 2 3
b: 4 5 6
a,b
1 2 3 4 5 6</langsyntaxhighlight>
 
Concatenations on larger dimensions also use ",", often combined with other operations.
 
<syntaxhighlight lang=K>
<lang K>
ab:3 3#"abcdefghi"
("abc"
Line 2,407:
("abc036"
"def147"
"ghi258")</langsyntaxhighlight>
 
=={{header|Klingphix}}==
<langsyntaxhighlight lang=Klingphix>include ..\Utilitys.tlhy
 
( 1.0 "Hello" 3 2 / 4 2.1 power ) ( 5 6 7 8 ) chain print
 
" " input</langsyntaxhighlight>
{{out}}
<pre>(1, "Hello", 1.5, 18.379173679952562, 5, 6, 7, 8)</pre>
 
=={{header|Klong}}==
<syntaxhighlight lang=K>
<lang K>
[1 2 3],[4 5 6] :" join "
[1 2 3 4 5 6]
Line 2,428:
[1 2],:/[[3 4] [5 6] [7 8]] :" join each-right "
[[3 4 1 2] [5 6 1 2] [7 8 1 2]]
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
There is no operator or standard library function for concatenating <code>Array</code> types. One option is to convert to <code>Collection</code>s, concatenate, and convert back:
<langsyntaxhighlight lang=kotlin>fun main(args: Array<String>) {
val a: Array<Int> = arrayOf(1, 2, 3) // initialise a
val b: Array<Int> = arrayOf(4, 5, 6) // initialise b
val c: Array<Int> = (a.toList() + b.toList()).toTypedArray()
println(c)
}</langsyntaxhighlight>
 
Alternatively, we can write our own concatenation function:
<langsyntaxhighlight lang=kotlin>fun arrayConcat(a: Array<Any>, b: Array<Any>): Array<Any> {
return Array(a.size + b.size, { if (it in a.indices) a[it] else b[it - a.size] })
}</langsyntaxhighlight>
 
When working directly with <code>Collection</code>s, we can simply use the <code>+</code> operator:
<langsyntaxhighlight lang=kotlin>fun main(args: Array<String>) {
val a: Collection<Int> = listOf(1, 2, 3) // initialise a
val b: Collection<Int> = listOf(4, 5, 6) // initialise b
val c: Collection<Int> = a + b
println(c)
}</langsyntaxhighlight>
 
=={{header|LabVIEW}}==
Line 2,457:
 
=={{header|Lambdatalk}}==
<langsyntaxhighlight lang=scheme>
{def A {A.new 1 2 3 4 5 6}} -> [1,2,3,4,5,6]
{def B {A.new 7 8 9}} -> [7,8,9]
{A.concat {A} {B}} -> [1,2,3,4,5,6,7,8,9]
</syntaxhighlight>
</lang>
 
=={{header|Lang5}}==
<langsyntaxhighlight lang=Lang5>[1 2] [3 4] append collapse .</langsyntaxhighlight>
 
=={{header|langur}}==
<langsyntaxhighlight lang=langur>val .a = [1, 2, 3]
val .b = [7, 8, 9]
val .c = .a ~ .b
writeln .c</langsyntaxhighlight>
 
{{out}}
Line 2,476:
 
=={{header|Lasso}}==
<langsyntaxhighlight lang=Lasso>
local(arr1 = array(1, 2, 3))
local(arr2 = array(4, 5, 6))
Line 2,488:
arr2 = array(4, 5, 6)
arr3 = array(4, 5, 6)
arr3 = array(1, 2, 3, 4, 5, 6)</langsyntaxhighlight>
 
=={{header|LFE}}==
<langsyntaxhighlight lang=lisp>
> (++ '(1 2 3) '(4 5 6))
(1 2 3 4 5 6)
> (: lists append '(1 2 3) '(4 5 6))
(1 2 3 4 5 6)
</syntaxhighlight>
</lang>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang=lb> x=10
y=20
dim array1(x)
Line 2,516:
for i = 1 to x + y
print array3(i)
next</langsyntaxhighlight>
 
=={{header|LIL}}==
LIL uses lists instead of arrays. The builtin '''append''' command could be used as '''append a $b'''. That would add the entire list in variable '''b''' as one item to list '''a'''. Below '''quote''' is used to flatten the lists into a single new list of all items.
 
<langsyntaxhighlight lang=tcl>##
Array concatenation in LIL
##
Line 2,529:
 
print $c
print "[index $c 0] [index $c 3]"</langsyntaxhighlight>
 
{{out}}
Line 2,537:
 
=={{header|Limbo}}==
<langsyntaxhighlight lang=limbo>implement Command;
 
include "sys.m";
Line 2,559:
for (i := 0; i < len c; i++)
sys->print("%d\n", c[i]);
}</langsyntaxhighlight>
 
=={{header|Lingo}}==
<langsyntaxhighlight lang=lingo>a = [1,2]
b = [3,4,5]
 
Line 2,570:
 
put a
-- [1, 2, 3, 4, 5]</langsyntaxhighlight>
 
=={{header|Little}}==
<langsyntaxhighlight lang=C>void main() {
int a[] = {0, 1, 2, 3, 4};
int b[] = {5, 6, 7, 8, 9};
int c[] = {(expand)a, (expand)b};
puts(c);
}</langsyntaxhighlight>
 
=={{header|Logo}}==
COMBINE is used to combine lists or words. SENTENCE is used to combine lists and words into a single list.
<langsyntaxhighlight lang=logo>
to combine-arrays :a1 :a2
output listtoarray sentence arraytolist :a1 arraytolist :a2
end
show combine-arrays {1 2 3} {4 5 6} ; {1 2 3 4 5 6}
</syntaxhighlight>
</lang>
 
=={{header|Lua}}==
<langsyntaxhighlight lang=lua>a = {1, 2, 3}
b = {4, 5, 6}
 
Line 2,597:
end
 
print(table.concat(a, ", "))</langsyntaxhighlight>
{{out}}
<pre>
Line 2,604:
 
=={{header|M2000 Interpreter}}==
<langsyntaxhighlight lang=M2000 Interpreter>
a=(1,2,3,4,5)
b=Cons(a, (6,7,8),a)
Print b
1 2 3 4 5 6 7 8 1 2 3 4 5
</syntaxhighlight>
</lang>
 
Adding 2 dimension arrays
 
<langsyntaxhighlight lang=M2000 Interpreter>
Dim Base 0, A(2,2)=1, B(1,2)=6
A()=Cons(A(), B(), A(), B())
Line 2,624:
Print
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 2,637:
=={{header|Maple}}==
There is a built-in procedure for concatenating arrays (and similar objects such as matrices or vectors). Arrays can be concatenated along any given dimension, which is specified as the first argument.
<langsyntaxhighlight lang=Maple>
> A := Array( [ 1, 2, 3 ] );
A := [1, 2, 3]
Line 2,663:
[ ]
[1 2 3]
</syntaxhighlight>
</lang>
Of course, the order of the arguments is important.
<langsyntaxhighlight lang=Maple>
> ArrayTools:-Concatenate( 1, A, M );
[1 2 3]
Line 2,672:
[ ]
[d e f]
</syntaxhighlight>
</lang>
Lists, in Maple, might be considered to be a kind of "array" (in the sense that they look like arrays in memory), though they are actually immutable objects. However, they can be concatenated as follows.
<langsyntaxhighlight lang=Maple>
> L1 := [ 1, 2, 3 ];
L1 := [1, 2, 3]
Line 2,686:
> [ L1[], L2[] ]; # equivalent, just different syntax
[1, 2, 3, a, b, c]
</syntaxhighlight>
</lang>
 
=={{header|Mathcad}}==
Line 2,702:
augment concatenates arrays column-wise. The two (or more) arrays must have the same number of rows, and the resulting array column count is equal to the total number of columns in the augmented arrays.
 
<langsyntaxhighlight lang=Mathcad>
create a pair of arbitrary array:
a:=matrix(2,2,max) b:=a+3
Line 2,718:
|1 1 3 4|
 
</syntaxhighlight>
</lang>
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<langsyntaxhighlight lang=Mathematica>Join[{1,2,3}, {4,5,6}]
 
-> {1, 2, 3, 4, 5, 6}</langsyntaxhighlight>
 
=={{header|MATLAB}} / {{header|Octave}}==
Two arrays are concatenated by placing the two arrays between a pair of square brackets. A space between the two array names will concatenate them horizontally, and a semi-colon between array names will concatenate vertically.
<langsyntaxhighlight lang=MATLAB>>> a = [1 2 3];
>> b = [4 5 6];
>> c = [a b]
Line 2,735:
c =
1 2 3
4 5 6</langsyntaxhighlight>
 
For concatenation along higher dimensions, use cat():
<langsyntaxhighlight lang=MATLAB>>> a = randn([3 4 5]);
>> b = randn([3 4 7]);
>> c = cat(3,a,b);
>> size(c)
ans =
3 4 12</langsyntaxhighlight>
 
=={{header|Maxima}}==
Line 2,768:
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]) */</langsyntaxhighlight>
 
=={{header|Mercury}}==
 
<langsyntaxhighlight lang=Mercury>A `append` B = C</langsyntaxhighlight>
 
It ''could'' be "as simple as array1 + array2", but the 'array' module names the operation 'append' rather than '+'. It's tempting to just say that Mercury supports ad-hoc polymorphism - it can infer that a bare '+' refers to 'float.+' or 'int.+' (or that the 'append' above is array.append, rather than list.append), by the types involved - but it also handles other ambiguities in the same way. For instance, Mercury (like Prolog and Erlang) treats the arity of a function as part of its name, where ''a(1, 2)'' and ''a(1)'' involve the distinct functions a/2 and a/1. But Mercury also (unlike Prolog and Erlang) supports [[currying]], where ''a(1)'' is a function that accepts a/2's second argument. So, is ''[a(X), a(Y), a(Z)]'' a list of whatever type a/1 evaluates to, or is it a list of curried a/2?
Line 2,778:
=={{header|min}}==
{{works with|min|0.19.3}}
<langsyntaxhighlight lang=min>(1 2 3) (4 "apple" 6) concat print</langsyntaxhighlight>
{{out}}
<pre>
Line 2,785:
 
=={{header|MiniScript}}==
<langsyntaxhighlight lang=MiniScript>
arrOne = [1, 2, 3]
arrTwo = [4, 5, 6]
print arrOne + arrTwo
</syntaxhighlight>
</lang>
 
=={{header|Nanoquery}}==
Assuming a and b are array or list objects, they may concatenated using the '+' operator.
<syntaxhighlight lang =Nanoquery>a + b</langsyntaxhighlight>
The '*' operator may also be used to create a specific number of copies of a list or array.
<pre>% a = list()
Line 2,803:
 
=={{header|Neko}}==
<langsyntaxhighlight lang=ActionScript>/*
Array concatenation, in Neko
*/
Line 2,812:
/* $array(a1, a2) creates an array of two arrays, $aconcat merges to one */
var ac = $aconcat($array(a1, a2))
$print(ac, "\n")</langsyntaxhighlight>
 
{{out}}
Line 2,820:
 
=={{header|Nemerle}}==
<langsyntaxhighlight lang=Nemerle>using System.Console;
using Nemerle.Collections;
 
Line 2,831:
foreach (i in arr12) Write($"$i ");
}
}</langsyntaxhighlight>
 
=={{header|NetRexx}}==
NetRexx arrays are identical to [[Java|Java's]] so all the techniques described in the [[#Java|Java]] section apply to NetRexx too. This example uses the <tt>Collection</tt> classes to merge two arrays.
<langsyntaxhighlight lang=netrexx>/* NetRexx */
options replace format comments java crossref nobinary
 
Line 2,862:
loop m_ = 0 to merged.length - 1
say m_ merged[m_]
end m_</langsyntaxhighlight>
{{out}}
<pre>
Line 2,879:
 
=={{header|NewLISP}}==
<langsyntaxhighlight lang=NewLISP>; file: arraycon.lsp
; url: http://rosettacode.org/wiki/Array_concatenation
; author: oofoe 2012-01-28
Line 2,894:
(append '((x 56) (b 99)) '((z 34) (c 23) (r 88))))
 
(exit)</langsyntaxhighlight>
 
{{out}}
Line 2,905:
Examples tested to work with Q'Nial7
 
<langsyntaxhighlight lang=Nial> a:= 1 2 3
+-+-+-+
|1|2|3|
Line 2,912:
+-+-+-+
|4|5|6|
+-+-+-+</langsyntaxhighlight>
 
Table of lists:
 
<langsyntaxhighlight lang=Nial> a b
 
+-------+-------+
Line 2,922:
||1|2|3|||4|5|6||
|+-+-+-+|+-+-+-+|
+-------+-------+</langsyntaxhighlight>
 
Simple concatenation of two arrays/lists:
 
<langsyntaxhighlight lang=Nial> link a b
+-+-+-+-+-+-+
|1|2|3|4|5|6|
+-+-+-+-+-+-+</langsyntaxhighlight>
 
Convert list of lists to table:
 
<langsyntaxhighlight lang=Nial> mix a b
+-+-+-+
|1|2|3|
+-+-+-+
|4|5|6|
+-+-+-+</langsyntaxhighlight>
 
Interchange levels of a list of lists:
<langsyntaxhighlight lang=Nial> pack a b
+-----+-----+-----+
|+-+-+|+-+-+|+-+-+|
||1|4|||2|5|||3|6||
|+-+-+|+-+-+|+-+-+|
+-----+-----+-----+</langsyntaxhighlight>
 
=={{header|Nim}}==
Dynamic sized Sequences can simply be concatenated:
<langsyntaxhighlight lang=nim>var
x = @[1,2,3,4,5,6]
y = @[7,8,9,10,11]
z = x & y</langsyntaxhighlight>
 
Static sized Arrays:
<langsyntaxhighlight lang=nim>var
a = [1,2,3,4,5,6]
b = [7,8,9,10,11]
Line 2,962:
 
c[0..5] = a
c[6..10] = b</langsyntaxhighlight>
 
=={{header|Oberon-2}}==
<langsyntaxhighlight lang=oberon2>
MODULE ArrayConcat;
IMPORT
Line 3,016:
END ArrayConcat.
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 3,023:
 
=={{header|Objeck}}==
<langsyntaxhighlight lang=objeck>
bundle Default {
class Arithmetic {
Line 3,055:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Objective-C}}==
with immutable arrays:
<langsyntaxhighlight lang=objc>NSArray *arr1 = @[@1, @2, @3];
NSArray *arr2 = @[@4, @5, @6];
NSArray *arr3 = [arr1 arrayByAddingObjectsFromArray:arr2];</langsyntaxhighlight>
 
or adding onto a mutable array:
<langsyntaxhighlight lang=objc>NSArray *arr1 = @[@1, @2, @3];
NSArray *arr2 = @[@4, @5, @6];
NSMutableArray *arr3 = [NSMutableArray arrayWithArray:arr1];
[arr3 addObjectsFromArray:arr2];</langsyntaxhighlight>
 
=={{header|OCaml}}==
It is more natural in OCaml to use lists instead of arrays:
<langsyntaxhighlight lang=ocaml># let list1 = [1; 2; 3];;
val list1 : int list = [1; 2; 3]
# let list2 = [4; 5; 6];;
val list2 : int list = [4; 5; 6]
# let list1and2 = list1 @ list2;;
val list1and2 : int list = [1; 2; 3; 4; 5; 6]</langsyntaxhighlight>
 
If you want to use arrays:
<langsyntaxhighlight lang=ocaml># let array1 = [|1; 2; 3|];;
val array1 : int array = [|1; 2; 3|]
# let array2 = [|4; 5; 6|];;
val array2 : int array = [|4; 5; 6|]
# let array1and2 = Array.append array1 array2;;
val array1and2 : int array = [|1; 2; 3; 4; 5; 6|]</langsyntaxhighlight>
 
=={{header|Oforth}}==
 
<langsyntaxhighlight lang=Oforth>import: mapping
 
[1, 2, 3 ] [ 4, 5, 6, 7 ] + </langsyntaxhighlight>
 
=={{header|Onyx}}==
 
<langsyntaxhighlight lang=onyx># With two arrays on the stack, cat pops
# them, concatenates them, and pushes the result back
# on the stack. This works with arrays of integers,
Line 3,106:
 
[1 true `a'] [2 false `b'] [`3rd array'] 3 ncat
# leaves [1 true `a' 2 false `b' `3rd array'] on the stack</langsyntaxhighlight>
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang=ooRexx>a = .array~of(1,2,3)
say "Array a has " a~items "items"
b = .array~of(4,5,6)
say "Array b has " b~items "items"
a~appendall(b) -- adds all items from b to a
say "Array a now has " a~items "items"</langsyntaxhighlight>
{{out}}
<pre>Array a has 3 items
Line 3,122:
=={{header|Order}}==
Order supports two main aggregate types: tuples and sequences (similar to lists in other languages). Most "interesting" operations are limited to sequences, but both support an append operation, and each can be converted to the other.
<langsyntaxhighlight lang=c>#include <order/interpreter.h>
 
ORDER_PP( 8tuple_append(8tuple(1, 2, 3), 8tuple(4, 5, 6), 8pair(7, 8)) )
Line 3,128:
 
ORDER_PP( 8seq_append(8seq(1, 2, 3), 8seq(4, 5, 6), 8seq(7, 8)) )
// -> (1)(2)(3)(4)(5)(6)(7)(8)</langsyntaxhighlight>
 
=={{header|OxygenBasic}}==
<langsyntaxhighlight lang=oxygenbasic>
'CREATE DYNAMIC ARRAY SPACES USING STRINGS
 
Line 3,154:
 
print a[7] 'result 70
</syntaxhighlight>
</lang>
 
=={{header|Oz}}==
List are concatenated with <code>List.append</code> (shortcut: <code>Append</code>). Tuples are concatened with <code>Tuple.append</code>. Arrays do exist in Oz, but are rarely used.
<langsyntaxhighlight lang=oz>%% concatenating 2 lists
{Append [a b] [c d]} = [a b c d]
 
%% concatenating 2 tuples
{Tuple.append t(1 2 3) u(4 5 6)} = u(1 2 3 4 5 6)</langsyntaxhighlight>
 
=={{header|PARI/GP}}==
<syntaxhighlight lang =parigp>concat(u,v)</langsyntaxhighlight>
 
=={{header|Pascal}}==
Line 3,172:
=={{header|Perl}}==
In Perl, arrays placed into list context are flattened:
<langsyntaxhighlight lang=perl>my @arr1 = (1, 2, 3);
my @arr2 = (4, 5, 6);
my @arr3 = (@arr1, @arr2);</langsyntaxhighlight>
 
The <code>[http://perldoc.perl.org/functions/push.html push]</code> function appends elements onto an existing array:
<langsyntaxhighlight lang=perl>my @arr1 = (1, 2, 3);
my @arr2 = (4, 5, 6);
push @arr1, @arr2;
print "@arr1\n"; # prints "1 2 3 4 5 6"</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/basics}}
<!--<langsyntaxhighlight lang=Phix>-->
<span style="color: #004080;">sequence</span> <span style="color: #000000;">s1</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{<span style="color: #000000;">1<span style="color: #0000FF;">,<span style="color: #000000;">2<span style="color: #0000FF;">,<span style="color: #000000;">3<span style="color: #0000FF;">}<span style="color: #0000FF;">,</span> <span style="color: #000000;">s2</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{<span style="color: #000000;">4<span style="color: #0000FF;">,<span style="color: #000000;">5<span style="color: #0000FF;">,<span style="color: #000000;">6<span style="color: #0000FF;">}</span>
<span style="color: #0000FF;">?</span> <span style="color: #000000;">s1</span> <span style="color: #0000FF;">&</span> <span style="color: #000000;">s2
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 3,194:
 
=={{header|Phixmonti}}==
<langsyntaxhighlight lang=Phixmonti>1.0 "Hello" 3 2 / 4 2.1 power 4 tolist 5 6 7 8 4 tolist chain print</langsyntaxhighlight>
With syntactic sugar
<langsyntaxhighlight lang=Phixmonti>include ..\Utilitys.pmt
( 1.0 "Hello" 3 2 / 4 2.1 power ) ( 5 6 7 8 ) chain print</langsyntaxhighlight>
 
=={{header|PHP}}==
 
<langsyntaxhighlight lang=php>$arr1 = array(1, 2, 3);
$arr2 = array(4, 5, 6);
$arr3 = array_merge($arr1, $arr2);</langsyntaxhighlight>
 
=={{header|Picat}}==
Line 3,210:
and back again with to_array/1.
 
<langsyntaxhighlight lang=Picat>go =>
L1 = {1,2,3,4,5}, % define an array with {}
L2 = {6,7,8,9},
Line 3,221:
append(L1.to_list,L2.to_list,L3),
println(L3.to_array),
nl.</langsyntaxhighlight>
 
{{out}}
Line 3,232:
 
There are destructive concatenations:
<langsyntaxhighlight lang=PicoLisp>: (setq A (1 2 3) B '(a b c))
-> (a b c)
: (conc A B) # Concatenate lists in 'A' and 'B'
-> (1 2 3 a b c)
: A
-> (1 2 3 a b c) # Side effect: List in 'A' is modified!</langsyntaxhighlight>
and non-destructive concatenations:
<langsyntaxhighlight lang=PicoLisp>: (setq A (1 2 3) B '(a b c))
-> (a b c)
: (append A B) # Append lists in 'A' and 'B'
Line 3,246:
-> (1 2 3)
: B
-> (a b c) # Arguments are not modified</langsyntaxhighlight>
 
=={{header|Pike}}==
<langsyntaxhighlight lang=Pike>int main() {
array arr1 = ({1, 2, 3});
array arr2 = ({4, 5, 6});
array arr3 = arr1 + arr2;
}</langsyntaxhighlight>
 
=={{header|PL/I}}==
Trivial example requires no computational statement.
Note that the arrays are not in static storage:
<langsyntaxhighlight lang=PL/I>
declare x(12) fixed;
declare b(5) fixed defined x;
declare c(7) fixed defined x(1sub+5);
</syntaxhighlight>
</lang>
A more general example using dynamic bounds.
Again, no computation statement is required.
Line 3,269:
declare b(m) fixed defined x;
declare c(n) fixed defined x(1sub+hbound(b,1));
</syntaxhighlight>
</lang>
 
An alternative, that can be used to advantage for matrices
Line 3,291:
put skip list ('Composite matrix:');
put skip edit (a) ( skip, (hbound(a,2)) f(5,0) );
</syntaxhighlight>
</lang>
{{out}}
<lang>
Line 3,308:
0 0 0 0 15 16
 
</syntaxhighlight>
</lang>
 
=={{header|Pony}}==
<langsyntaxhighlight lang=pony>
actor Main
new create(env:Env)=>
Line 3,326:
env.out.print(i.string())
end
</syntaxhighlight>
</lang>
 
=={{header|PostScript}}==
{{libheader|initlib}}
<langsyntaxhighlight lang=postscript>
[1 2 3 4] [5 6 7 8] concat
</syntaxhighlight>
</lang>
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang=powershell>$a = 1,2,3
$b = 4,5,6
 
$c = $a + $b
Write-Host $c</langsyntaxhighlight>
 
=={{header|Processing}}==
<langsyntaxhighlight lang=processing>
int[] a = {1, 2, 3}, b = {4, 5, 6};
 
int[] c = concat(a, b);
</syntaxhighlight>
</lang>
 
=={{header|Prolog}}==
<langsyntaxhighlight lang=prolog>
?- append([1,2,3],[4,5,6],R).
R = [1, 2, 3, 4, 5, 6].
</syntaxhighlight>
</lang>
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang=PureBasic>Procedure displayArray(Array a(1), msg.s)
Protected i
Print(msg + " [")
Line 3,401:
Input()
CloseConsole()
EndIf</langsyntaxhighlight>
{{out}}
<pre>a: [5, 2, -4, -1, -2]
Line 3,410:
The <code>[http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange +]</code> operator concatenates two lists and returns a new list.
The <code>[http://docs.python.org/library/stdtypes.html#mutable-sequence-types list.extend]</code> method appends elements of another list to the receiver.
<langsyntaxhighlight lang=python>arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
arr3 = [7, 8, 9]
Line 3,416:
assert arr4 == [1, 2, 3, 4, 5, 6]
arr4.extend(arr3)
assert arr4 == [1, 2, 3, 4, 5, 6, 7, 8, 9]</langsyntaxhighlight>
 
Note: list.extend is normally accomplished using the += operator like this:
<langsyntaxhighlight lang=python>arr5 = [4, 5, 6]
arr6 = [7, 8, 9]
arr6 += arr5
assert arr6 == [7, 8, 9, 4, 5, 6]</langsyntaxhighlight>
 
=={{header|Q}}==
<langsyntaxhighlight lang=q>list1:1 2 3
list2:4 5 6
list1,list2</langsyntaxhighlight>
 
 
Line 3,433:
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
<langsyntaxhighlight lang=qbasic>FUNCTION ConcatArrays(a(), b())
ta = UBOUND(a)
tb = UBOUND(b)
Line 3,461:
IF i < nt THEN PRINT ", ";
NEXT i
</syntaxhighlight>
</lang>
 
=={{header|QB64}}==
 
<langsyntaxhighlight lang=QB64>
 
Dim As Integer First, Second
Line 3,511:
End Sub
 
</syntaxhighlight>
</lang>
=={{header|Quackery}}==
 
Line 3,538:
=={{header|R}}==
 
<syntaxhighlight lang=R>
<lang R>
a1 <- c(1, 2, 3)
a2 <- c(3, 4, 5)
a3 <- c(a1, a2)
</syntaxhighlight>
</lang>
 
=={{header|Racket}}==
<langsyntaxhighlight lang=racket>
(vector-append #(1 2 3 4) #(5 6 7) #(8 9 10))
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 3,556:
(formerly Perl 6)
{{works with|Rakudo|2018.06}}
<langsyntaxhighlight lang=perl6>my @array1 = 1, 2, 3;
my @array2 = 4, 5, 6;
 
Line 3,573:
# of the second array to the first, use the .append method.
 
say @array1.append: @array2;</langsyntaxhighlight>
{{Out}}
<pre>[1 2 3 4 5 6]
Line 3,580:
 
=={{header|RapidQ}}==
<syntaxhighlight lang=vb>
<lang vb>
DEFINT A(1 to 4) = {1, 2, 3, 4}
DEFINT B(1 to 4) = {10, 20, 30, 40}
Line 3,587:
Redim A(1 to 8) as integer
MEMCPY(varptr(A(5)), varptr(B(1)), Sizeof(integer)*4)
</syntaxhighlight>
</lang>
 
=={{header|Rapira}}==
<langsyntaxhighlight lang=Rapira>arr1 := <* 1, 2, 3 *>
arr2 := <* 4, 5, 6 *>
output: arr1 + arr2</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight lang=REBOL>
a1: [1 2 3]
a2: [4 5 6]
Line 3,603:
 
append/only a1 a3 ; -> [1 2 3 4 5 6 [7 8 9]]
</syntaxhighlight>
</lang>
 
=={{header|Red}}==
<langsyntaxhighlight lang=Red>>> arr1: ["a" "b" "c"]
>> arr2: ["d" "e" "f"]
>> append arr1 arr2
Line 3,617:
== [22 33 44]
>> append/only arr1 arr4
== [1 2 3 "a" "b" "c" "d" "e" "f" [22 33 44]]</langsyntaxhighlight>
 
=={{header|ReScript}}==
<langsyntaxhighlight lang=ReScript>Js.Array2.concat(["a", "b"], ["c", "d", "e"]) == ["a", "b", "c", "d", "e"]</langsyntaxhighlight>
 
=={{header|Retro}}==
<langsyntaxhighlight lang=Retro>{ #1 #2 #3 } { #4 #5 #6 } a:append</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 3,636:
 
Consider:
<langsyntaxhighlight lang=rexx>a.1 = 10
a.2 = 22.7
a.7 = -12</langsyntaxhighlight>
where now we have three "elements", and they are disjointed (another word for ''sparse'').
<br>There are ways to handle this in REXX however.
Line 3,644:
<br>assuming that the stemmed variables are sequential.
<br><br>'''example:'''
<langsyntaxhighlight lang=rexx>fact.0=8
fact.1= 1
fact.2= 2
Line 3,652:
fact.6= 720
fact.7= 5040
fact.8=40320</langsyntaxhighlight>
To concat two "arrays" in REXX, the following assumes that the stemmed variables are in order, with no gaps, and none have a "null" value.
<langsyntaxhighlight lang=rexx>/*REXX program to demonstrates how to perform array concatenation.*/
 
p.= /*(below) a short list of primes.*/
Line 3,675:
say 'c.'m"="c.m /*show a "merged" C array nums.*/
end /*m*/
/*stick a fork in it, we're done.*/</langsyntaxhighlight>
{{out}}
<pre>
Line 3,706:
 
=={{header|Ring}}==
<langsyntaxhighlight lang=ring>
arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
Line 3,715:
arr5 = arr4 + arr3
see arr5
</syntaxhighlight>
</lang>
 
=={{header|RLaB}}==
Line 3,721:
In RLaB the matrices can be appended (column-wise) or stacked (row-wise).
Consider few examples:
<langsyntaxhighlight lang=RLaB>
>> x = [1, 2, 3]
>> y = [4, 5, 6]
Line 3,735:
4 5 6
>>
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
The <code>[http://www.ruby-doc.org/core/classes/Array.html#M002209 Array#+]</code> method concatenates two arrays and returns a new array. The <code>[http://www.ruby-doc.org/core/classes/Array.html#M002166 Array#concat]</code> method appends elements of another array to the receiver.
<langsyntaxhighlight lang=ruby>arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
arr3 = [7, 8, 9]
arr4 = arr1 + arr2 # => [1, 2, 3, 4, 5, 6]
arr4.concat(arr3) # => [1, 2, 3, 4, 5, 6, 7, 8, 9]</langsyntaxhighlight>
 
Or use flatten(1):
<langsyntaxhighlight lang=ruby>
# concat multiple arrays:
[arr1,arr2,arr3].flatten(1)
# ignore nil:
[arr1,arr2,arr3].compact.flatten(1)
</syntaxhighlight>
</lang>
 
=={{header|Rust}}==
<langsyntaxhighlight lang=rust>fn main() {
let a_vec = vec![1, 2, 3, 4, 5];
let b_vec = vec![6; 5];
Line 3,769:
concat
}
</syntaxhighlight>
</lang>
 
Or, with iterators:
 
<langsyntaxhighlight lang=rust>fn concatenate_arrays<T: Clone>(x: &[T], y: &[T]) -> Vec<T> {
x.iter().chain(y).cloned().collect()
}
</syntaxhighlight>
</lang>
 
=={{header|S-lang}}==
<langsyntaxhighlight lang=S-lang>variable a = [1, 2, 3];
variable b = [4, 5, 6], c;</langsyntaxhighlight>
 
a+b is perfectly valid in S-Lang, but instead of the problem's desired effect,
Line 3,786:
But because arrays automatically 'flatten' when defined, concatenation is as
simple as:
<langsyntaxhighlight lang=S-lang>c = [a, b];</langsyntaxhighlight>
Use of lists is more traditional; lists don't 'flatten', so we use either
list_concat() to create a new concatenated array:
<langsyntaxhighlight lang=S-lang>a = {1, 2, 3};
b = {4, 5, 6};
c = list_concat(a, b);</langsyntaxhighlight>
 
or list_join():
<syntaxhighlight lang =S-lang>list_join(a, b);</langsyntaxhighlight>
which adds the elements of b onto a.
 
=={{header|SASL}}==
In SASL, the concat operator ++ is built-in
<langsyntaxhighlight lang=SASL>(1 2 3) ++ (4 5 6)</langsyntaxhighlight>
 
=={{header|Scala}}==
<langsyntaxhighlight lang=Scala>val arr1 = Array( 1, 2, 3 )
val arr2 = Array( 4, 5, 6 )
val arr3 = Array( 7, 8, 9 )
Line 3,809:
//or:
Array concat ( arr1, arr2, arr3 )
// res0: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)</langsyntaxhighlight>
 
=={{header|Scheme}}==
<langsyntaxhighlight lang=scheme>; in r5rs, there is append for lists, but we'll need to define vector-append
(define (vector-append . arg) (list->vector (apply append (map vector->list arg))))
 
(vector-append #(1 2 3 4) #(5 6 7) #(8 9 10))
; #(1 2 3 4 5 6 7 8 9 10)</langsyntaxhighlight>
 
''Note : vector-append is also defined in [http://srfi.schemers.org/srfi-43/srfi-43.html SRFI-43].''
Line 3,823:
{{works with|Gauche Scheme}}
 
<langsyntaxhighlight lang=Scheme>
(use gauche.array)
 
Line 3,849:
(print-matrix (array-concatenate a b))
(print-matrix (array-concatenate a b 1))
</syntaxhighlight>
</lang>
 
{{out}}
Line 3,866:
 
=={{header|Seed7}}==
<langsyntaxhighlight lang=seed7>$ include "seed7_05.s7i";
 
var array integer: a is [] (1, 2, 3, 4);
Line 3,881:
end for;
writeln;
end func;</langsyntaxhighlight>
 
{{out}}
Line 3,887:
 
=={{header|SenseTalk}}==
<langsyntaxhighlight lang=sensetalk>put (1, 2, 3) into list1
put (4, 5, 6) into list2
put list1 &&& list2 into list3
put list3</langsyntaxhighlight>
 
=={{header|SETL}}==
<langsyntaxhighlight lang=haskell>A := [1, 2, 3];
B := [3, 4, 5];
print(A + B); -- [1 2 3 3 4 5]</langsyntaxhighlight>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang=ruby>var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = (arr1 + arr2); # => [1, 2, 3, 4, 5, 6]</langsyntaxhighlight>
 
=={{header|Simula}}==
<langsyntaxhighlight lang=simula>BEGIN ! Concatenate arrays - of REAL, here;
 
CLASS REAL_ARRAY(N); INTEGER N;
Line 3,997:
X.CONCAT(NEW REAL_ARRAY(4)
.linearFill(-1, -3)).out(SYSOUT);
END.</langsyntaxhighlight>
{{out}}
<pre> 3.00 10.00 17.00 0.00 5.00 10.00 15.00
Line 4,006:
The binary operation of concatenation is made with the <tt>;</tt> (semi-colon) from the type Sequence. It is also available for appending Sequences to WriteStreams.
 
<langsyntaxhighlight lang=slate>
{1. 2. 3. 4. 5} ; {6. 7. 8. 9. 10}
</syntaxhighlight>
</lang>
 
=={{header|Smalltalk}}==
Concatenation (appending) is made with the method <tt>,</tt> (comma), present in classes SequenceableCollection, ArrayedCollection and their subclasses (e.g. Array, String, OrderedCollection ...)
 
<langsyntaxhighlight lang=smalltalk>|a b c|
a := #(1 2 3 4 5).
b := #(6 7 8 9 10).
c := a,b.
c displayNl.</langsyntaxhighlight>
 
=={{header|SNOBOL4}}==
Line 4,025:
{{works with|CSnobol}}
 
<langsyntaxhighlight lang=SNOBOL4>* # Concatenate 2 arrays (vectors)
define('cat(a1,a2)i,j') :(cat_end)
cat cat = array(prototype(a1) + prototype(a2))
Line 4,044:
output = str2
output = str3
end</langsyntaxhighlight>
 
{{out}}
Line 4,052:
 
=={{header|Standard ML}}==
<langsyntaxhighlight lang=Standard ML>
val l1 = [1,2,3,4];;
val l2 = [5,6,7,8];;
val l3 = l1 @ l2 (* [1,2,3,4,5,6,7,8] *)
</syntaxhighlight>
</lang>
 
=={{header|Stata}}==
===Macro language===
<langsyntaxhighlight lang=stata>. matrix a=2,9,4\7,5,3\6,1,8
. matrix list a
 
Line 4,097:
r1 1 0 0
r2 0 1 0
r3 0 0 1</langsyntaxhighlight>
=== Mata ===
<langsyntaxhighlight lang=stata>. mata
: a=2,9,4\7,5,3\6,1,8
 
Line 4,123:
+-------------+
 
: end</langsyntaxhighlight>
 
=={{header|Swift}}==
<langsyntaxhighlight lang=Swift>let array1 = [1,2,3]
let array2 = [4,5,6]
let array3 = array1 + array2</langsyntaxhighlight>
 
=={{header|Tailspin}}==
<langsyntaxhighlight lang=tailspin>
def a: [1, 2, 3];
def b: [4, 5, 6];
[$a..., $b...] -> !OUT::write
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 4,142:
 
=={{header|Tcl}}==
<langsyntaxhighlight lang=tcl>set a {1 2 3}
set b {4 5 6}
set ab [concat $a $b]; # 1 2 3 4 5 6</langsyntaxhighlight>
Note that in the Tcl language, “arrays” are hash maps of strings to variables, so the notion of concatenation doesn't really apply. What other languages (usually) call arrays are “lists” in Tcl.
 
Line 4,177:
 
=={{header|Trith}}==
<langsyntaxhighlight lang=trith>[1 2 3] [4 5 6] concat</langsyntaxhighlight>
 
=={{header|UNIX Shell}}==
Line 4,185:
{{works with|bash}}
 
<langsyntaxhighlight lang=bash>array1=( 1 2 3 4 5 )
array2=( 6 7 8 9 10 )
botharrays=( ${array1[@]} ${array2[@]} )</langsyntaxhighlight>
 
Whitespace-delimited strings work in much the same way:
Line 4,193:
{{works with|bash}}
 
<langsyntaxhighlight lang=bash>array1='1 2 3 4 5'
array2='6 7 8 9 10'
 
Line 4,200:
 
# Concatenated to a string ...
botharrays_s="$array1 $array2"</langsyntaxhighlight>
 
=={{header|Ursa}}==
<langsyntaxhighlight lang=ursa># create two streams (the ursa equivalent of arrays)
# a contains the numbers 1-10, b contains 11-20
decl int<> a b
Line 4,218:
 
# output a to the console
out a endl console</langsyntaxhighlight>
 
=={{header|Vala}}==
<langsyntaxhighlight lang=vala>int[] array_concat(int[]a,int[]b){
int[] c = new int[a.length + b.length];
Memory.copy(c, a, a.length * sizeof(int));
Line 4,234:
stdout.printf("%d\n",i);
}
}</langsyntaxhighlight>
 
=={{header|VBA}}==
 
<syntaxhighlight lang=vb>
<lang vb>
Option Explicit
 
Line 4,264:
Concat_Array = TmpA1
End Function
</syntaxhighlight>
</lang>
{{out}}
<pre>With Array 1 : 1, 2, 3, 4, 5, 24/11/2017, azerty
Line 4,272:
 
=={{header|VBScript}}==
<langsyntaxhighlight lang=vb>Function ArrayConcat(arr1, arr2)
ReDim ret(UBound(arr1) + UBound(arr2) + 1)
For i = 0 To UBound(arr1)
Line 4,289:
WScript.Echo "arr2 = array(" & Join(arr2,", ") & ")"
arr3 = ArrayConcat(arr1, arr2)
WScript.Echo "arr1 + arr2 = array(" & Join(arr3,", ") & ")"</langsyntaxhighlight>
 
{{out}}
Line 4,299:
 
=={{header|Visual Basic .NET}}==
<langsyntaxhighlight lang=vbnet>
Dim iArray1() As Integer = {1, 2, 3}
Dim iArray2() As Integer = {4, 5, 6}
Line 4,305:
 
iArray3 = iArray1.Concat(iArray2).ToArray
</syntaxhighlight>
</lang>
 
=={{header|Vlang}}==
V uses a '''<<''' operator for array concatenation. Destination array needs to be mutable.
 
<langsyntaxhighlight lang=go>// V, array concatenation
// Tectonics: v run array-concatenation.v
module main
Line 4,321:
arr1 << arr2
println(arr1)
}</langsyntaxhighlight>
 
{{out}}<pre>$ v run array-concatenation.v
Line 4,330:
Wart doesn't have arrays yet, just lists.
 
<langsyntaxhighlight lang=wart>a <- '(1 2 3)
b <- '(4 5 6)
a+b
# => (1 2 3 4 5 6)</langsyntaxhighlight>
 
=={{header|Wren}}==
<langsyntaxhighlight lang=ecmascript>var arr1 = [1,2,3]
var arr2 = [4,5,6]
System.print(arr1 + arr2)</langsyntaxhighlight>
{{Out}}
<pre>[1, 2, 3, 4, 5, 6]</pre>
 
=={{header|Yabasic}}==
<langsyntaxhighlight lang=Yabasic>sub arrayConcatenation(a(), b())
local ta, tb, nt, i
Line 4,378:
if i < nt print ", ";
next i
print</langsyntaxhighlight>
 
=={{header|Yacas}}==
<langsyntaxhighlight lang=Yacas>Concat({1,2,3}, {4,5,6})
 
Out> {1, 2, 3, 4, 5, 6}</langsyntaxhighlight>
 
=={{header|Yorick}}==
<langsyntaxhighlight lang=yorick>a = [1,2,3];
b = [4,5,6];
ab = grow(a, b);</langsyntaxhighlight>
 
=={{header|Z80 Assembly}}==
Line 4,394:
Credit to Keith of [https://www.chibiakumas.com ChibiAkumas] for creating it.
 
<langsyntaxhighlight lang=z80> org $8000
 
ld hl,TestArray1 ; pointer to first array
Line 4,424:
; in the reverse order.
TestArray1:
byte $aa,$bb,$cc,$dd,$ee,$ff</langsyntaxhighlight>
 
{{out}}
Line 4,434:
=={{header|zkl}}==
Lists (both mutable and read only), no built in support for numeric vectors/arrays/matrices
<langsyntaxhighlight lang=zkl>T(1,2).extend(T(4,5,6)) //-->L(1,2,4,5,6)
T(1,2).extend(4,5,6) //-->L(1,2,4,5,6)</langsyntaxhighlight>
 
=={{header|zonnon}}==
Line 4,513:
WriteAry(Concat2(x,y));
end Main.
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 4,522:
=={{header|Zsh}}==
Concatenating arrays.
<langsyntaxhighlight lang=zsh>a=(1 2 3)
b=(a b c)
 
c=($a $b)</langsyntaxhighlight>
Pushing a single element into an array.
<langsyntaxhighlight lang=zsh>a+=4</langsyntaxhighlight>
Pushing another array into an array.
<langsyntaxhighlight lang=zsh>a+=($b)</langsyntaxhighlight>
 
=={{header|ZX Spectrum Basic}}==
{{trans|Liberty BASIC}}
<langsyntaxhighlight lang=zxbasic>10 LET x=10
20 LET y=20
30 DIM a(x)
Line 4,547:
130 PRINT c(i);", ";
140 NEXT i
</syntaxhighlight>
</lang>
10,333

edits