Jump to content

Array concatenation: Difference between revisions

m
Automated syntax highlighting fixup (second round - minor fixes)
m (syntax highlighting fixup automation)
m (Automated syntax highlighting fixup (second round - minor fixes))
Line 1:
{{task|Data Structures}}
[[Category:Simple]]
{{task|Data Structures}}
;Task:
Line 10:
 
=={{header|11l}}==
<syntaxhighlight lang="11l">V arr1 = [1, 2, 3]
V arr2 = [4, 5, 6]
print(arr1 [+] arr2)</syntaxhighlight>
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.
 
<syntaxhighlight lang="68000devpac">ArrayRam equ $00FF2000 ;this label points to 4k of free space.
 
;concatenate Array1 + Array2
Line 46:
 
=={{header|8th}}==
<syntaxhighlight lang=Forth"forth">
[1,2,3] [4,5,6] a:+ .
</syntaxhighlight>
Line 56:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang=AArch64"aarch64 Assemblyassembly">
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program concAreaString.s */
Line 163:
The concept of arrays does not exist in ABAP, instead internal tables are used. This works in ABAP version 7.40 and above.
 
<syntaxhighlight lang=ABAP"abap">
report z_array_concatenation.
 
Line 184:
=={{header|ACL2}}==
This is for lists, not arrays; ACL2's array support is limited.
<syntaxhighlight lang=Lisp"lisp">(append xs ys)</syntaxhighlight>
 
=={{header|Action!}}==
<syntaxhighlight lang=Action"action!">BYTE FUNC Concat(INT ARRAY src1,src2,dst BYTE size1,size2)
BYTE i
 
Line 249:
 
=={{header|ActionScript}}==
<syntaxhighlight lang=ActionScript"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]</syntaxhighlight>
Line 255:
=={{header|Ada}}==
In [[Ada]] arrays are concatenated using the operation &. It works with any one dimensioned array:
<syntaxhighlight lang=Ada"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)</syntaxhighlight>
 
=={{header|Aime}}==
<syntaxhighlight lang="aime">ac(list a, b)
{
list o;
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:
<syntaxhighlight lang=Algol68"algol68">MODE ARGTYPE = INT;
MODE ARGLIST = FLEX[0]ARGTYPE;
 
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.
<syntaxhighlight lang="algolw">begin
integer array a ( 1 :: 5 );
integer array b ( 2 :: 4 );
Line 373:
 
=={{header|Amazing Hopper}}==
<syntaxhighlight lang=Amazing"amazing Hopperhopper">
#include <hbasic.h>
Begin
Line 389:
 
=={{header|AntLang}}==
<syntaxhighlight lang=AntLang"antlang">a:<1; <2; 3>>
b: <"Hello"; 42>
c: a,b</syntaxhighlight>
 
=={{header|Apex}}==
<syntaxhighlight lang="apex">List<String> listA = new List<String> { 'apple' };
List<String> listB = new List<String> { 'banana' };
listA.addAll(listB);
Line 400:
 
=={{header|APL}}==
<syntaxhighlight lang="apl">
1 2 3 , 4 5 6
1 2 3 4 5 6
Line 406:
 
=={{header|AppleScript}}==
<syntaxhighlight lang=AppleScript"applescript">
set listA to {1, 2, 3}
set listB to {4, 5, 6}
Line 422:
{{trans|JavaScript}}
 
<syntaxhighlight lang="applescript">on run
 
concat([["alpha", "beta", "gamma"], ¬
Line 448:
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<syntaxhighlight lang=ARM"arm Assemblyassembly">
/* ARM assembly Raspberry PI */
/* program concAreaString.s */
Line 623:
 
=={{header|Arturo}}==
<syntaxhighlight lang="rebol">arr1: [1 2 3]
arr2: ["four" "five" "six"]
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''.
 
<syntaxhighlight 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 772:
=== True Arrays ===
{{works with|AutoHotkey_L}}
<syntaxhighlight lang=AHK"ahk">List1 := [1, 2, 3]
List2 := [4, 5, 6]
cList := Arr_concatenate(List1, List2)
Line 792:
=== Legacy versions ===
[[AutoHotkey_Basic]] does not have real Arrays, but the user can implement them quite easily. For example:
<syntaxhighlight lang=AutoHotkey"autohotkey">List1 = 1,2,3
List2 = 4,5,6
 
Line 838:
 
<syntaxhighlight lang=AutoIt"autoit">
_ArrayConcatenate($avArray, $avArray2)
Func _ArrayConcatenate(ByRef $avArrayTarget, Const ByRef $avArraySource, $iStart = 0)
Line 860:
 
=={{header|Avail}}==
<syntaxhighlight lang=Avail"avail"><1, 2, 3> ++ <¢a, ¢b, ¢c></syntaxhighlight>
 
=={{header|AWK}}==
<syntaxhighlight lang=AWK"awk">#!/usr/bin/awk -f
BEGIN {
split("cul-de-sac",a,"-")
Line 884:
 
=={{header|Babel}}==
<syntaxhighlight lang="babel">[1 2 3] [4 5 6] cat ;</syntaxhighlight>
 
{{Out}}
Line 890:
 
=={{header|bash}}==
<syntaxhighlight lang="bash">x=("1 2" "3 4")
y=(5 6)
sum=( "${x[@]}" "${y[@]}" )
Line 902:
=={{header|BASIC}}==
==={{header|Applesoft BASIC}}===
<syntaxhighlight 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 910:
70 FOR I = 1 TO X + Y: PRINT MID$ (" ",1,I > 1)C(I - 1);: NEXT</syntaxhighlight>
==={{header|BaCon}}===
<syntaxhighlight lang="bacon">DECLARE a[] = { 1, 2, 3, 4, 5 }
DECLARE b[] = { 6, 7, 8, 9, 10 }
 
Line 922:
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
<syntaxhighlight lang="bbcbasic"> DIM a(3), b(4)
a() = 1, 2, 3, 4
b() = 5, 6, 7, 8, 9
Line 944:
==={{header|Commodore BASIC}}===
(Based on ZX Spectrum BASIC version)
<syntaxhighlight 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 963:
 
=={{header|BASIC256}}==
<syntaxhighlight lang="basic256">arraybase 1
global c
 
Line 1,004:
 
=={{header|BQN}}==
<syntaxhighlight lang="bqn">1‿2‿3 ∾ 4‿5‿6</syntaxhighlight>
 
=={{header|Bracmat}}==
Line 1,028:
=={{header|Burlesque}}==
 
<syntaxhighlight lang="burlesque">
blsq ) {1 2 3}{4 5 6}_+
{1 2 3 4 5 6}
Line 1,035:
=={{header|C}}==
A way to concatenate two C arrays when you know their size (and usually so it is)
<syntaxhighlight lang="c">#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Line 1,069:
 
=={{header|C sharp|C#}}==
<syntaxhighlight lang="csharp">using System;
 
namespace RosettaCode
Line 1,095:
 
{{works with|C sharp|C#|3}}
<syntaxhighlight lang="csharp">using System.Linq;
 
class Program
Line 1,109:
 
=={{header|C++}}==
<syntaxhighlight lang="cpp">#include <vector>
#include <iostream>
 
Line 1,127:
Similar to above but using initialization schematics.
 
<syntaxhighlight lang="cpp">#include <vector>
#include <iostream>
 
Line 1,143:
This is another solution with function level templates and pointers.
 
<syntaxhighlight lang="cpp">#include <iostream>
 
using namespace std;
Line 1,195:
 
=={{header|Ceylon}}==
<syntaxhighlight lang="ceylon">shared void arrayConcatenation() {
value a = Array {1, 2, 3};
value b = Array {4, 5, 6};
Line 1,203:
 
=={{header|Clojure}}==
<syntaxhighlight lang="clojure">(concat [1 2 3] [4 5 6])</syntaxhighlight>
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
<syntaxhighlight lang="clojure">(into [1 2 3] [4 5 6])</syntaxhighlight>
 
=={{header|COBOL}}==
<syntaxhighlight lang=COBOL"cobol"> identification division.
program-id. array-concat.
 
Line 1,273:
 
=={{header|CoffeeScript}}==
<syntaxhighlight lang="coffeescript">
# like in JavaScript
a = [1, 2, 3]
Line 1,282:
=={{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.
<syntaxhighlight lang="lisp">(concatenate 'vector #(0 1 2 3) #(4 5 6 7))
=> #(0 1 2 3 4 5 6 7)</syntaxhighlight>
===Alternate solution===
I use [https://franz.com/downloads/clp/survey Allegro CL 10.1]
 
<syntaxhighlight lang="lisp">
(setf arr1 (make-array '(3) :initial-contents '(1 2 3)))
(setf arr2 (make-array '(3) :initial-contents '(4 5 6)))
Line 1,310:
=={{header|Component Pascal}}==
BlackBox Component Builder
<syntaxhighlight lang="oberon2">
MODULE ArrayConcat;
IMPORT StdLog;
Line 1,377:
 
=={{header|Crystal}}==
<syntaxhighlight lang="ruby">arr1 = [1, 2, 3]
arr2 = ["foo", "bar", "baz"]
arr1 + arr2 #=> [1, 2, 3, "foo", "bar", "baz"]</syntaxhighlight>
 
=={{header|D}}==
<syntaxhighlight lang="d">import std.stdio: writeln;
void main() {
Line 1,395:
=={{header|Delphi}}==
2022/07/13
<syntaxhighlight lang="delphi">
// This example works on stuff as old as Delphi 5 (maybe older)
// Modern Delphi / Object Pascal has both
Line 1,467:
It has running commentary about memory management that isn’t exactly correct.<br>
Delphi handles dynamic array memory very well.
<syntaxhighlight lang="delphi">type
TReturnArray = array of integer; //you need to define a type to be able to return it
 
Line 1,507:
 
=={{header|Diego}}==
<syntaxhighlight lang="diego">set_namespace(rosettacode)_me();
 
add_ary(a)_values(1,2,3);
Line 1,519:
=={{header|Dyalect}}==
 
<syntaxhighlight lang="dyalect">var xs = [1,2,3]
var ys = [4,5,6]
var alls = Array.Concat(xs, ys)
Line 1,530:
=={{header|E}}==
 
<syntaxhighlight lang="e">? [1,2] + [3,4]
# value: [1, 2, 3, 4]</syntaxhighlight>
 
=={{header|EasyLang}}==
 
<syntaxhighlight lang="text">a[] = [ 1 2 3 ]
b[] = [ 4 5 6 ]
c[] = a[]
Line 1,546:
=={{header|EchoLisp}}==
The native operators are '''append''' for lists, and '''vector-append''' for vectors (1-dim arrays).
<syntaxhighlight lang="scheme">
;;;; VECTORS
(vector-append (make-vector 6 42) (make-vector 4 666))
Line 1,565:
=={{header|ECL}}==
 
<syntaxhighlight lang="text">
A := [1, 2, 3, 4];
B := [5, 6, 7, 8];
Line 1,575:
using the ++ operator and the lists.append function
 
<syntaxhighlight lang="efene">
@public
run = fn () {
Line 1,590:
=={{header|EGL}}==
{{works with|EDT}}
<syntaxhighlight lang=EGL"egl">
program ArrayConcatenation
function main()
Line 1,607:
 
=={{header|Ela}}==
<syntaxhighlight lang="ela">xs = [1,2,3]
ys = [4,5,6]
xs ++ ys</syntaxhighlight>
Line 1,614:
=={{header|Elena}}==
ELENA 5.0 :
<syntaxhighlight lang="elena">import extensions;
 
public program()
Line 1,631:
 
=={{header|Elixir}}==
<syntaxhighlight 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]])
Line 1,639:
 
=={{header|Elm}}==
<syntaxhighlight 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,662:
The ''vconcat'' function returns a new array containing all the elements of it's arguments.
 
<syntaxhighlight lang="lisp">(vconcat '[1 2 3] '[4 5] '[6 7 8 9])
=> [1 2 3 4 5 6 7 8 9]</syntaxhighlight>
 
Line 1,670:
 
On the shell,
<syntaxhighlight lang="erlang">
1> [1, 2, 3] ++ [4, 5, 6].
[1,2,3,4,5,6]
Line 1,679:
 
=={{header|ERRE}}==
<syntaxhighlight lang="text">
PROGRAM ARRAY_CONCAT
 
Line 1,714:
 
=={{header|Euphoria}}==
<syntaxhighlight lang=Euphoria"euphoria">sequence s1,s2,s3
s1 = {1,2,3}
s2 = {4,5,6}
Line 1,725:
=={{header|F Sharp|F#}}==
Array concatenation.
<syntaxhighlight lang="fsharp">let a = [|1; 2; 3|]
let b = [|4; 5; 6;|]
let c = Array.append a b</syntaxhighlight>
List concatenation (@ and List.append are equivalent).
<syntaxhighlight lang="fsharp">let x = [1; 2; 3]
let y = [4; 5; 6]
let z1 = x @ y
Line 1,735:
 
=={{header|Factor}}==
<syntaxhighlight lang="factor">append</syntaxhighlight>
 
'''Example''':
<syntaxhighlight lang="factor">( scratchpad ) USE: sequences
( scratchpad ) { 1 2 } { 3 4 } append .
{ 1 2 3 4 }</syntaxhighlight>
Line 1,746:
In fansh:
 
<syntaxhighlight lang="fantom">
> a := [1,2,3]
> b := [4,5,6]
Line 1,758:
=={{header|FBSL}}==
Array concatenation:
<syntaxhighlight lang="qbasic">#APPTYPE CONSOLE
 
DIM aint[] ={1, 2, 3}, astr[] ={"one", "two", "three"}, asng[] ={!1, !2, !3}
Line 1,772:
 
=={{header|Forth}}==
<syntaxhighlight lang=Forth"forth">: $!+ ( a u a' -- a'+u )
2dup + >r swap move r> ;
: cat ( a2 u2 a1 u1 -- a3 u1+u2 )
Line 1,789:
=={{header|Fortran}}==
{{works with|Fortran|90 and later}}
<syntaxhighlight lang="fortran">program Concat_Arrays
implicit none
 
Line 1,809:
=={{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>).
<syntaxhighlight lang="pascal"> array2 := array0 + array1</syntaxhighlight>
Alternatively, one could use <code>concat()</code> which is independent of above modeswitch and mode:
<syntaxhighlight lang="pascal"> array2 := concat(array0, array1);</syntaxhighlight>
Both options do not require any libraries.
 
=={{header|FreeBASIC}}==
<syntaxhighlight lang="freebasic">
' FB 1.05.0 Win64
 
Line 1,850:
 
=={{header|Frink}}==
<syntaxhighlight lang="frink">
a = [1,2]
b = [3,4]
Line 1,857:
 
=={{header|FunL}}==
<syntaxhighlight lang="funl">arr1 = array( [1, 2, 3] )
arr2 = array( [4, 5, 6] )
arr3 = array( [7, 8, 9] )
Line 1,873:
Array concatenation is done with the built-in function <code>concat</code>, which can take any number of arguments:
 
<syntaxhighlight lang=Futhark"futhark">
concat as bs cd
</syntaxhighlight>
Line 1,879:
=={{header|FutureBasic}}==
 
<syntaxhighlight lang=FutureBasic"futurebasic">void local fn DoIt
CFArrayRef array = @[@"Alpha",@"Bravo",@"Charlie"]
print array
Line 1,911:
=={{header|Gambas}}==
'''[https://gambas-playground.proko.eu/?gist=314bea6fba7f177a1cfaec8a7a8b5ccb Click this link to run this code]'''
<syntaxhighlight lang="gambas">Public Sub Main()
Dim sString1 As String[] = ["The", "quick", "brown", "fox"]
Dim sString2 As String[] = ["jumped", "over", "the", "lazy", "dog"]
Line 1,926:
 
=={{header|GAP}}==
<syntaxhighlight 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,938:
 
=={{header|Genie}}==
<syntaxhighlight lang="genie">[indent=4]
/*
Array concatenation, in Genie
Line 1,977:
=={{header|GLSL}}==
This macro concatenates two arrays to form a new array. The first parameter is the type of the array:
<syntaxhighlight lang="glsl">
#define array_concat(T,a1,a2,returned) \
T[a1.length()+a2.length()] returned; \
Line 1,990:
</syntaxhighlight>
The macro can be used like this:
<syntaxhighlight lang="glsl">
array_concat(float,float[](1.,2.,3.),float[](4.,5.,6.),returned);
int i = returned.length();
Line 1,996:
 
=={{header|Go}}==
<syntaxhighlight lang="go">package main
 
import "fmt"
Line 2,038:
</pre>
Array concatenation needs can vary. Here is another set of examples that illustrate different techniques.
<syntaxhighlight lang="go">package main
 
import (
Line 2,103:
=={{header|Gosu}}==
 
<syntaxhighlight lang="gosu">
var listA = { 1, 2, 3 }
var listB = { 4, 5, 6 }
Line 2,114:
=={{header|Groovy}}==
Solution:
<syntaxhighlight lang="groovy">def list = [1, 2, 3] + ["Crosby", "Stills", "Nash", "Young"]</syntaxhighlight>
 
Test:
<syntaxhighlight lang="groovy">println list</syntaxhighlight>
 
{{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 ++:
<syntaxhighlight lang="haskell">(++) :: [a] -> [a] -> [a]</syntaxhighlight>
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:
<syntaxhighlight lang="haskell">
[] ++ x = x
(h:t) ++ y = h : (t ++ y)
</syntaxhighlight>
or folding
<syntaxhighlight lang="haskell">
x ++ y = foldr (:) y x
</syntaxhighlight>
 
=={{header|HicEst}}==
<syntaxhighlight lang=HicEst"hicest">REAL :: a(7), b(3), c(10)
 
c = a
Line 2,149:
 
=={{header|Hy}}==
<syntaxhighlight lang="hy">=> (setv a [1 2 3])
=> a
[1, 2, 3]
Line 2,166:
 
=={{header|i}}==
<syntaxhighlight lang="i">main
a $= [1, 2, 3]
b $= [4, 5, 6]
Line 2,175:
=={{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.
<syntaxhighlight lang="icon">
procedure main()
L1 := [1, 2, 3, 4]
Line 2,191:
 
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:
<syntaxhighlight lang=IDL"idl">
> a = [1,2,3]
> b = [4,5,6]
Line 2,204:
</syntaxhighlight>
Then they can be concatenated "at the ends":
<syntaxhighlight lang=IDL"idl">
> help,[a,b]
<Expression> INT = Array[6]
Line 2,211:
</syntaxhighlight>
or "at the sides":
<syntaxhighlight lang=IDL"idl">
> help,[[a],[b]]
<Expression> INT = Array[3, 2]
Line 2,219:
</syntaxhighlight>
Note that this requires that the arrays have the same size at the side at which they are concatenated:
<syntaxhighlight lang=IDL"idl">
> b = transpose(b)
> help,b
Line 2,245:
 
=={{header|Inform 7}}==
<syntaxhighlight lang="inform7">let A be {1, 2, 3};
let B be {4, 5, 6};
add B to A;</syntaxhighlight>
 
=={{header|Ioke}}==
<syntaxhighlight lang="ioke">iik> [1,2,3] + [3,2,1]
[1,2,3] + [3,2,1]
+> [1, 2, 3, 3, 2, 1]</syntaxhighlight>
Line 2,258:
 
'''Example''':
<syntaxhighlight lang="j"> array1 =: 1 2 3
array2 =: 4 5 6
array1 , array2
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.
 
<syntaxhighlight lang="j"> ]ab=: 3 3 $ 'aaabbbccc'
aaa
bbb
Line 2,302:
 
=={{header|Java}}==
<syntaxhighlight lang="java5">public static Object[] concat(Object[] arr1, Object[] arr2) {
Object[] res = new Object[arr1.length + arr2.length];
 
Line 2,313:
=={{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).
<syntaxhighlight lang="javascript">var a = [1,2,3],
b = [4,5,6],
c = a.concat(b); //=> [1,2,3,4,5,6]</syntaxhighlight>
Line 2,323:
See, for a function with an analogous type signature, '''concat''' in the Haskell Prelude.
 
<syntaxhighlight lang="javascript">(function () {
'use strict';
 
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 "+". <syntaxhighlight lang="jq">[1,2] + [3] + [null] # => [1,2,3,null]
 
[range(1;3), 3, null] # => [1,2,3,null]
Line 2,356:
 
=={{header|Julia}}==
<syntaxhighlight lang="julia">a = [1,2,3]
b = [4,5,6]
ab = [a;b]
Line 2,367:
 
=={{header|K}}==
<syntaxhighlight lang=K"k">
a: 1 2 3
b: 4 5 6
Line 2,375:
Concatenations on larger dimensions also use ",", often combined with other operations.
 
<syntaxhighlight lang=K"k">
ab:3 3#"abcdefghi"
("abc"
Line 2,410:
 
=={{header|Klingphix}}==
<syntaxhighlight lang=Klingphix"klingphix">include ..\Utilitys.tlhy
 
( 1.0 "Hello" 3 2 / 4 2.1 power ) ( 5 6 7 8 ) chain print
Line 2,419:
 
=={{header|Klong}}==
<syntaxhighlight lang=K"k">
[1 2 3],[4 5 6] :" join "
[1 2 3 4 5 6]
Line 2,432:
=={{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:
<syntaxhighlight 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
Line 2,440:
 
Alternatively, we can write our own concatenation function:
<syntaxhighlight 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] })
}</syntaxhighlight>
 
When working directly with <code>Collection</code>s, we can simply use the <code>+</code> operator:
<syntaxhighlight 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
Line 2,457:
 
=={{header|Lambdatalk}}==
<syntaxhighlight 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]
Line 2,464:
 
=={{header|Lang5}}==
<syntaxhighlight lang=Lang5"lang5">[1 2] [3 4] append collapse .</syntaxhighlight>
 
=={{header|langur}}==
<syntaxhighlight lang="langur">val .a = [1, 2, 3]
val .b = [7, 8, 9]
val .c = .a ~ .b
Line 2,476:
 
=={{header|Lasso}}==
<syntaxhighlight lang=Lasso"lasso">
local(arr1 = array(1, 2, 3))
local(arr2 = array(4, 5, 6))
Line 2,491:
 
=={{header|LFE}}==
<syntaxhighlight lang="lisp">
> (++ '(1 2 3) '(4 5 6))
(1 2 3 4 5 6)
Line 2,499:
 
=={{header|Liberty BASIC}}==
<syntaxhighlight lang="lb"> x=10
y=20
dim array1(x)
Line 2,521:
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.
 
<syntaxhighlight lang="tcl">##
Array concatenation in LIL
##
Line 2,537:
 
=={{header|Limbo}}==
<syntaxhighlight lang="limbo">implement Command;
 
include "sys.m";
Line 2,562:
 
=={{header|Lingo}}==
<syntaxhighlight lang="lingo">a = [1,2]
b = [3,4,5]
 
Line 2,573:
 
=={{header|Little}}==
<syntaxhighlight lang=C"c">void main() {
int a[] = {0, 1, 2, 3, 4};
int b[] = {5, 6, 7, 8, 9};
Line 2,582:
=={{header|Logo}}==
COMBINE is used to combine lists or words. SENTENCE is used to combine lists and words into a single list.
<syntaxhighlight lang="logo">
to combine-arrays :a1 :a2
output listtoarray sentence arraytolist :a1 arraytolist :a2
Line 2,590:
 
=={{header|Lua}}==
<syntaxhighlight lang="lua">a = {1, 2, 3}
b = {4, 5, 6}
 
Line 2,604:
 
=={{header|M2000 Interpreter}}==
<syntaxhighlight lang=M2000"m2000 Interpreterinterpreter">
a=(1,2,3,4,5)
b=Cons(a, (6,7,8),a)
Line 2,613:
Adding 2 dimension arrays
 
<syntaxhighlight lang=M2000"m2000 Interpreterinterpreter">
Dim Base 0, A(2,2)=1, B(1,2)=6
A()=Cons(A(), B(), A(), B())
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.
<syntaxhighlight lang=Maple"maple">
> A := Array( [ 1, 2, 3 ] );
A := [1, 2, 3]
Line 2,665:
</syntaxhighlight>
Of course, the order of the arguments is important.
<syntaxhighlight lang=Maple"maple">
> ArrayTools:-Concatenate( 1, A, M );
[1 2 3]
Line 2,674:
</syntaxhighlight>
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.
<syntaxhighlight lang=Maple"maple">
> L1 := [ 1, 2, 3 ];
L1 := [1, 2, 3]
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.
 
<syntaxhighlight lang=Mathcad"mathcad">
create a pair of arbitrary array:
a:=matrix(2,2,max) b:=a+3
Line 2,721:
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<syntaxhighlight lang=Mathematica"mathematica">Join[{1,2,3}, {4,5,6}]
 
-> {1, 2, 3, 4, 5, 6}</syntaxhighlight>
Line 2,727:
=={{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.
<syntaxhighlight lang=MATLAB"matlab">>> a = [1 2 3];
>> b = [4 5 6];
>> c = [a b]
Line 2,738:
 
For concatenation along higher dimensions, use cat():
<syntaxhighlight lang=MATLAB"matlab">>> a = randn([3 4 5]);
>> b = randn([3 4 7]);
>> c = cat(3,a,b);
Line 2,746:
 
=={{header|Maxima}}==
<syntaxhighlight lang="text">u: [1, 2, 3, 4]$
v: [5, 6, 7, 8, 9, 10]$
append(u, v);
Line 2,772:
=={{header|Mercury}}==
 
<syntaxhighlight lang=Mercury"mercury">A `append` B = C</syntaxhighlight>
 
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}}
<syntaxhighlight lang="min">(1 2 3) (4 "apple" 6) concat print</syntaxhighlight>
{{out}}
<pre>
Line 2,785:
 
=={{header|MiniScript}}==
<syntaxhighlight lang=MiniScript"miniscript">
arrOne = [1, 2, 3]
arrTwo = [4, 5, 6]
Line 2,793:
=={{header|Nanoquery}}==
Assuming a and b are array or list objects, they may concatenated using the '+' operator.
<syntaxhighlight lang=Nanoquery"nanoquery">a + b</syntaxhighlight>
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}}==
<syntaxhighlight lang=ActionScript"actionscript">/*
Array concatenation, in Neko
*/
Line 2,820:
 
=={{header|Nemerle}}==
<syntaxhighlight lang=Nemerle"nemerle">using System.Console;
using Nemerle.Collections;
 
Line 2,835:
=={{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.
<syntaxhighlight lang="netrexx">/* NetRexx */
options replace format comments java crossref nobinary
 
Line 2,879:
 
=={{header|NewLISP}}==
<syntaxhighlight lang=NewLISP"newlisp">; file: arraycon.lsp
; url: http://rosettacode.org/wiki/Array_concatenation
; author: oofoe 2012-01-28
Line 2,905:
Examples tested to work with Q'Nial7
 
<syntaxhighlight lang=Nial"nial"> a:= 1 2 3
+-+-+-+
|1|2|3|
Line 2,916:
Table of lists:
 
<syntaxhighlight lang=Nial"nial"> a b
 
+-------+-------+
Line 2,926:
Simple concatenation of two arrays/lists:
 
<syntaxhighlight lang=Nial"nial"> link a b
+-+-+-+-+-+-+
|1|2|3|4|5|6|
Line 2,933:
Convert list of lists to table:
 
<syntaxhighlight lang=Nial"nial"> mix a b
+-+-+-+
|1|2|3|
Line 2,941:
 
Interchange levels of a list of lists:
<syntaxhighlight lang=Nial"nial"> pack a b
+-----+-----+-----+
|+-+-+|+-+-+|+-+-+|
Line 2,950:
=={{header|Nim}}==
Dynamic sized Sequences can simply be concatenated:
<syntaxhighlight lang="nim">var
x = @[1,2,3,4,5,6]
y = @[7,8,9,10,11]
Line 2,956:
 
Static sized Arrays:
<syntaxhighlight lang="nim">var
a = [1,2,3,4,5,6]
b = [7,8,9,10,11]
Line 2,965:
 
=={{header|Oberon-2}}==
<syntaxhighlight lang="oberon2">
MODULE ArrayConcat;
IMPORT
Line 3,023:
 
=={{header|Objeck}}==
<syntaxhighlight lang="objeck">
bundle Default {
class Arithmetic {
Line 3,059:
=={{header|Objective-C}}==
with immutable arrays:
<syntaxhighlight lang="objc">NSArray *arr1 = @[@1, @2, @3];
NSArray *arr2 = @[@4, @5, @6];
NSArray *arr3 = [arr1 arrayByAddingObjectsFromArray:arr2];</syntaxhighlight>
 
or adding onto a mutable array:
<syntaxhighlight lang="objc">NSArray *arr1 = @[@1, @2, @3];
NSArray *arr2 = @[@4, @5, @6];
NSMutableArray *arr3 = [NSMutableArray arrayWithArray:arr1];
Line 3,071:
=={{header|OCaml}}==
It is more natural in OCaml to use lists instead of arrays:
<syntaxhighlight lang="ocaml"># let list1 = [1; 2; 3];;
val list1 : int list = [1; 2; 3]
# let list2 = [4; 5; 6];;
Line 3,079:
 
If you want to use arrays:
<syntaxhighlight lang="ocaml"># let array1 = [|1; 2; 3|];;
val array1 : int array = [|1; 2; 3|]
# let array2 = [|4; 5; 6|];;
Line 3,088:
=={{header|Oforth}}==
 
<syntaxhighlight lang=Oforth"oforth">import: mapping
 
[1, 2, 3 ] [ 4, 5, 6, 7 ] + </syntaxhighlight>
Line 3,094:
=={{header|Onyx}}==
 
<syntaxhighlight 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,109:
 
=={{header|ooRexx}}==
<syntaxhighlight lang=ooRexx"oorexx">a = .array~of(1,2,3)
say "Array a has " a~items "items"
b = .array~of(4,5,6)
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.
<syntaxhighlight lang="c">#include <order/interpreter.h>
 
ORDER_PP( 8tuple_append(8tuple(1, 2, 3), 8tuple(4, 5, 6), 8pair(7, 8)) )
Line 3,131:
 
=={{header|OxygenBasic}}==
<syntaxhighlight lang="oxygenbasic">
'CREATE DYNAMIC ARRAY SPACES USING STRINGS
 
Line 3,158:
=={{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.
<syntaxhighlight lang="oz">%% concatenating 2 lists
{Append [a b] [c d]} = [a b c d]
 
Line 3,165:
 
=={{header|PARI/GP}}==
<syntaxhighlight lang="parigp">concat(u,v)</syntaxhighlight>
 
=={{header|Pascal}}==
Line 3,172:
=={{header|Perl}}==
In Perl, arrays placed into list context are flattened:
<syntaxhighlight lang="perl">my @arr1 = (1, 2, 3);
my @arr2 = (4, 5, 6);
my @arr3 = (@arr1, @arr2);</syntaxhighlight>
 
The <code>[http://perldoc.perl.org/functions/push.html push]</code> function appends elements onto an existing array:
<syntaxhighlight lang="perl">my @arr1 = (1, 2, 3);
my @arr2 = (4, 5, 6);
push @arr1, @arr2;
Line 3,184:
=={{header|Phix}}==
{{libheader|Phix/basics}}
<!--<syntaxhighlight lang=Phix"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
Line 3,194:
 
=={{header|Phixmonti}}==
<syntaxhighlight lang=Phixmonti"phixmonti">1.0 "Hello" 3 2 / 4 2.1 power 4 tolist 5 6 7 8 4 tolist chain print</syntaxhighlight>
With syntactic sugar
<syntaxhighlight lang=Phixmonti"phixmonti">include ..\Utilitys.pmt
( 1.0 "Hello" 3 2 / 4 2.1 power ) ( 5 6 7 8 ) chain print</syntaxhighlight>
 
=={{header|PHP}}==
 
<syntaxhighlight lang="php">$arr1 = array(1, 2, 3);
$arr2 = array(4, 5, 6);
$arr3 = array_merge($arr1, $arr2);</syntaxhighlight>
Line 3,210:
and back again with to_array/1.
 
<syntaxhighlight lang=Picat"picat">go =>
L1 = {1,2,3,4,5}, % define an array with {}
L2 = {6,7,8,9},
Line 3,232:
 
There are destructive concatenations:
<syntaxhighlight lang=PicoLisp"picolisp">: (setq A (1 2 3) B '(a b c))
-> (a b c)
: (conc A B) # Concatenate lists in 'A' and 'B'
Line 3,239:
-> (1 2 3 a b c) # Side effect: List in 'A' is modified!</syntaxhighlight>
and non-destructive concatenations:
<syntaxhighlight lang=PicoLisp"picolisp">: (setq A (1 2 3) B '(a b c))
-> (a b c)
: (append A B) # Append lists in 'A' and 'B'
Line 3,249:
 
=={{header|Pike}}==
<syntaxhighlight lang=Pike"pike">int main() {
array arr1 = ({1, 2, 3});
array arr2 = ({4, 5, 6});
Line 3,258:
Trivial example requires no computational statement.
Note that the arrays are not in static storage:
<syntaxhighlight lang=PL"pl/Ii">
declare x(12) fixed;
declare b(5) fixed defined x;
Line 3,265:
A more general example using dynamic bounds.
Again, no computation statement is required.
<syntaxhighlight lang="text">
declare x(m+n) fixed;
declare b(m) fixed defined x;
Line 3,276:
are used in the declarations, the bounds can be dynamic.
Matrix B is extended by placing matrix C on its diagonal:
<syntaxhighlight lang="text">
declare a(5,6) fixed;
declare b(3,4) fixed defined a(1sub, 2sub);
Line 3,293:
</syntaxhighlight>
{{out}}
<syntaxhighlight lang="text">
Please type elements for a 3 x 4 matrix:
 
Line 3,311:
 
=={{header|Pony}}==
<syntaxhighlight lang="pony">
actor Main
new create(env:Env)=>
Line 3,330:
=={{header|PostScript}}==
{{libheader|initlib}}
<syntaxhighlight lang="postscript">
[1 2 3 4] [5 6 7 8] concat
</syntaxhighlight>
 
=={{header|PowerShell}}==
<syntaxhighlight lang="powershell">$a = 1,2,3
$b = 4,5,6
 
Line 3,342:
 
=={{header|Processing}}==
<syntaxhighlight lang="processing">
int[] a = {1, 2, 3}, b = {4, 5, 6};
 
Line 3,349:
 
=={{header|Prolog}}==
<syntaxhighlight lang="prolog">
?- append([1,2,3],[4,5,6],R).
R = [1, 2, 3, 4, 5, 6].
Line 3,355:
 
=={{header|PureBasic}}==
<syntaxhighlight lang=PureBasic"purebasic">Procedure displayArray(Array a(1), msg.s)
Protected i
Print(msg + " [")
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.
<syntaxhighlight lang="python">arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
arr3 = [7, 8, 9]
Line 3,419:
 
Note: list.extend is normally accomplished using the += operator like this:
<syntaxhighlight lang="python">arr5 = [4, 5, 6]
arr6 = [7, 8, 9]
arr6 += arr5
Line 3,425:
 
=={{header|Q}}==
<syntaxhighlight lang="q">list1:1 2 3
list2:4 5 6
list1,list2</syntaxhighlight>
Line 3,433:
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
<syntaxhighlight lang="qbasic">FUNCTION ConcatArrays(a(), b())
ta = UBOUND(a)
tb = UBOUND(b)
Line 3,465:
=={{header|QB64}}==
 
<syntaxhighlight lang=QB64"qb64">
 
Dim As Integer First, Second
Line 3,538:
=={{header|R}}==
 
<syntaxhighlight lang=R"r">
a1 <- c(1, 2, 3)
a2 <- c(3, 4, 5)
Line 3,545:
 
=={{header|Racket}}==
<syntaxhighlight lang="racket">
(vector-append #(1 2 3 4) #(5 6 7) #(8 9 10))
</syntaxhighlight>
Line 3,556:
(formerly Perl 6)
{{works with|Rakudo|2018.06}}
<syntaxhighlight lang=perl6"raku" line>my @array1 = 1, 2, 3;
my @array2 = 4, 5, 6;
 
Line 3,580:
 
=={{header|RapidQ}}==
<syntaxhighlight lang="vb">
DEFINT A(1 to 4) = {1, 2, 3, 4}
DEFINT B(1 to 4) = {10, 20, 30, 40}
Line 3,590:
 
=={{header|Rapira}}==
<syntaxhighlight lang=Rapira"rapira">arr1 := <* 1, 2, 3 *>
arr2 := <* 4, 5, 6 *>
output: arr1 + arr2</syntaxhighlight>
 
=={{header|REBOL}}==
<syntaxhighlight lang=REBOL"rebol">
a1: [1 2 3]
a2: [4 5 6]
Line 3,606:
 
=={{header|Red}}==
<syntaxhighlight lang=Red"red">>> arr1: ["a" "b" "c"]
>> arr2: ["d" "e" "f"]
>> append arr1 arr2
Line 3,620:
 
=={{header|ReScript}}==
<syntaxhighlight lang=ReScript"rescript">Js.Array2.concat(["a", "b"], ["c", "d", "e"]) == ["a", "b", "c", "d", "e"]</syntaxhighlight>
 
=={{header|Retro}}==
<syntaxhighlight lang=Retro"retro">{ #1 #2 #3 } { #4 #5 #6 } a:append</syntaxhighlight>
 
=={{header|REXX}}==
Line 3,636:
 
Consider:
<syntaxhighlight lang="rexx">a.1 = 10
a.2 = 22.7
a.7 = -12</syntaxhighlight>
Line 3,644:
<br>assuming that the stemmed variables are sequential.
<br><br>'''example:'''
<syntaxhighlight lang="rexx">fact.0=8
fact.1= 1
fact.2= 2
Line 3,654:
fact.8=40320</syntaxhighlight>
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.
<syntaxhighlight lang="rexx">/*REXX program to demonstrates how to perform array concatenation.*/
 
p.= /*(below) a short list of primes.*/
Line 3,706:
 
=={{header|Ring}}==
<syntaxhighlight lang="ring">
arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
Line 3,721:
In RLaB the matrices can be appended (column-wise) or stacked (row-wise).
Consider few examples:
<syntaxhighlight lang=RLaB"rlab">
>> x = [1, 2, 3]
>> y = [4, 5, 6]
Line 3,739:
=={{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.
<syntaxhighlight lang="ruby">arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
arr3 = [7, 8, 9]
Line 3,746:
 
Or use flatten(1):
<syntaxhighlight lang="ruby">
# concat multiple arrays:
[arr1,arr2,arr3].flatten(1)
Line 3,754:
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">fn main() {
let a_vec = vec![1, 2, 3, 4, 5];
let b_vec = vec![6; 5];
Line 3,773:
Or, with iterators:
 
<syntaxhighlight lang="rust">fn concatenate_arrays<T: Clone>(x: &[T], y: &[T]) -> Vec<T> {
x.iter().chain(y).cloned().collect()
}
Line 3,779:
 
=={{header|S-lang}}==
<syntaxhighlight lang=S"s-lang">variable a = [1, 2, 3];
variable b = [4, 5, 6], c;</syntaxhighlight>
 
Line 3,786:
But because arrays automatically 'flatten' when defined, concatenation is as
simple as:
<syntaxhighlight lang=S"s-lang">c = [a, b];</syntaxhighlight>
Use of lists is more traditional; lists don't 'flatten', so we use either
list_concat() to create a new concatenated array:
<syntaxhighlight lang=S"s-lang">a = {1, 2, 3};
b = {4, 5, 6};
c = list_concat(a, b);</syntaxhighlight>
 
or list_join():
<syntaxhighlight lang=S"s-lang">list_join(a, b);</syntaxhighlight>
which adds the elements of b onto a.
 
=={{header|SASL}}==
In SASL, the concat operator ++ is built-in
<syntaxhighlight lang=SASL"sasl">(1 2 3) ++ (4 5 6)</syntaxhighlight>
 
=={{header|Scala}}==
<syntaxhighlight lang=Scala"scala">val arr1 = Array( 1, 2, 3 )
val arr2 = Array( 4, 5, 6 )
val arr3 = Array( 7, 8, 9 )
Line 3,812:
 
=={{header|Scheme}}==
<syntaxhighlight 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))))
 
Line 3,823:
{{works with|Gauche Scheme}}
 
<syntaxhighlight lang=Scheme"scheme">
(use gauche.array)
 
Line 3,866:
 
=={{header|Seed7}}==
<syntaxhighlight lang="seed7">$ include "seed7_05.s7i";
 
var array integer: a is [] (1, 2, 3, 4);
Line 3,887:
 
=={{header|SenseTalk}}==
<syntaxhighlight lang="sensetalk">put (1, 2, 3) into list1
put (4, 5, 6) into list2
put list1 &&& list2 into list3
Line 3,893:
 
=={{header|SETL}}==
<syntaxhighlight lang="haskell">A := [1, 2, 3];
B := [3, 4, 5];
print(A + B); -- [1 2 3 3 4 5]</syntaxhighlight>
 
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = (arr1 + arr2); # => [1, 2, 3, 4, 5, 6]</syntaxhighlight>
 
=={{header|Simula}}==
<syntaxhighlight lang="simula">BEGIN ! Concatenate arrays - of REAL, here;
 
CLASS REAL_ARRAY(N); INTEGER N;
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.
 
<syntaxhighlight lang="slate">
{1. 2. 3. 4. 5} ; {6. 7. 8. 9. 10}
</syntaxhighlight>
Line 4,013:
Concatenation (appending) is made with the method <tt>,</tt> (comma), present in classes SequenceableCollection, ArrayedCollection and their subclasses (e.g. Array, String, OrderedCollection ...)
 
<syntaxhighlight lang="smalltalk">|a b c|
a := #(1 2 3 4 5).
b := #(6 7 8 9 10).
Line 4,025:
{{works with|CSnobol}}
 
<syntaxhighlight lang=SNOBOL4"snobol4">* # Concatenate 2 arrays (vectors)
define('cat(a1,a2)i,j') :(cat_end)
cat cat = array(prototype(a1) + prototype(a2))
Line 4,052:
 
=={{header|Standard ML}}==
<syntaxhighlight lang=Standard"standard MLml">
val l1 = [1,2,3,4];;
val l2 = [5,6,7,8];;
Line 4,060:
=={{header|Stata}}==
===Macro language===
<syntaxhighlight lang="stata">. matrix a=2,9,4\7,5,3\6,1,8
. matrix list a
 
Line 4,099:
r3 0 0 1</syntaxhighlight>
=== Mata ===
<syntaxhighlight lang="stata">. mata
: a=2,9,4\7,5,3\6,1,8
 
Line 4,126:
 
=={{header|Swift}}==
<syntaxhighlight lang=Swift"swift">let array1 = [1,2,3]
let array2 = [4,5,6]
let array3 = array1 + array2</syntaxhighlight>
 
=={{header|Tailspin}}==
<syntaxhighlight lang="tailspin">
def a: [1, 2, 3];
def b: [4, 5, 6];
Line 4,142:
 
=={{header|Tcl}}==
<syntaxhighlight lang="tcl">set a {1 2 3}
set b {4 5 6}
set ab [concat $a $b]; # 1 2 3 4 5 6</syntaxhighlight>
Line 4,177:
 
=={{header|Trith}}==
<syntaxhighlight lang="trith">[1 2 3] [4 5 6] concat</syntaxhighlight>
 
=={{header|UNIX Shell}}==
Line 4,185:
{{works with|bash}}
 
<syntaxhighlight lang="bash">array1=( 1 2 3 4 5 )
array2=( 6 7 8 9 10 )
botharrays=( ${array1[@]} ${array2[@]} )</syntaxhighlight>
Line 4,193:
{{works with|bash}}
 
<syntaxhighlight lang="bash">array1='1 2 3 4 5'
array2='6 7 8 9 10'
 
Line 4,203:
 
=={{header|Ursa}}==
<syntaxhighlight 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,221:
 
=={{header|Vala}}==
<syntaxhighlight 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,238:
=={{header|VBA}}==
 
<syntaxhighlight lang="vb">
Option Explicit
 
Line 4,272:
 
=={{header|VBScript}}==
<syntaxhighlight lang="vb">Function ArrayConcat(arr1, arr2)
ReDim ret(UBound(arr1) + UBound(arr2) + 1)
For i = 0 To UBound(arr1)
Line 4,299:
 
=={{header|Visual Basic .NET}}==
<syntaxhighlight lang="vbnet">
Dim iArray1() As Integer = {1, 2, 3}
Dim iArray2() As Integer = {4, 5, 6}
Line 4,310:
V uses a '''<<''' operator for array concatenation. Destination array needs to be mutable.
 
<syntaxhighlight lang="go">// V, array concatenation
// Tectonics: v run array-concatenation.v
module main
Line 4,330:
Wart doesn't have arrays yet, just lists.
 
<syntaxhighlight lang="wart">a <- '(1 2 3)
b <- '(4 5 6)
a+b
Line 4,336:
 
=={{header|Wren}}==
<syntaxhighlight lang="ecmascript">var arr1 = [1,2,3]
var arr2 = [4,5,6]
System.print(arr1 + arr2)</syntaxhighlight>
Line 4,343:
 
=={{header|Yabasic}}==
<syntaxhighlight lang=Yabasic"yabasic">sub arrayConcatenation(a(), b())
local ta, tb, nt, i
Line 4,381:
 
=={{header|Yacas}}==
<syntaxhighlight lang=Yacas"yacas">Concat({1,2,3}, {4,5,6})
 
Out> {1, 2, 3, 4, 5, 6}</syntaxhighlight>
 
=={{header|Yorick}}==
<syntaxhighlight lang="yorick">a = [1,2,3];
b = [4,5,6];
ab = grow(a, b);</syntaxhighlight>
Line 4,394:
Credit to Keith of [https://www.chibiakumas.com ChibiAkumas] for creating it.
 
<syntaxhighlight lang="z80"> org $8000
 
ld hl,TestArray1 ; pointer to first array
Line 4,434:
=={{header|zkl}}==
Lists (both mutable and read only), no built in support for numeric vectors/arrays/matrices
<syntaxhighlight 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)</syntaxhighlight>
 
=={{header|zonnon}}==
<syntaxhighlight lang="text">
module Main;
import
Line 4,522:
=={{header|Zsh}}==
Concatenating arrays.
<syntaxhighlight lang="zsh">a=(1 2 3)
b=(a b c)
 
c=($a $b)</syntaxhighlight>
Pushing a single element into an array.
<syntaxhighlight lang="zsh">a+=4</syntaxhighlight>
Pushing another array into an array.
<syntaxhighlight lang="zsh">a+=($b)</syntaxhighlight>
 
=={{header|ZX Spectrum Basic}}==
{{trans|Liberty BASIC}}
<syntaxhighlight lang="zxbasic">10 LET x=10
20 LET y=20
30 DIM a(x)
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.