Retrieving an Element of an Array: Difference between revisions

Content added Content deleted
(tag obsolete (Arrays) and remove {header}s)
Line 1: Line 1:
{{task|Basic language learning}}In this task, the goal is to retrieve an element of an [[array]].
{{task|Basic language learning}}


'''This task is obsolete. Please do not add new code, and merge existing code to the [[Arrays]] task.'''
=={{header|4D}}==

In this task, the goal is to retrieve an element of an [[array]].

==[[4D]]==
` first element
` first element
$elem:=$array{1}
$elem:=$array{1}


=={{header|ActionScript}}==
==[[ActionScript]]==
<lang actionscript>
<lang actionscript>
var arr:Array = new Array(1,2,3);
var arr:Array = new Array(1,2,3);
Line 12: Line 16:
</lang>
</lang>


=={{header|Ada}}==
==[[Ada]]==
Array indexed by an enumerated type. Ada enumerated types are discrete non-numeric types.
Array indexed by an enumerated type. Ada enumerated types are discrete non-numeric types.
<lang ada>
<lang ada>
Line 23: Line 27:
Monday_Sales is assigned 200
Monday_Sales is assigned 200


=={{header|ALGOL 68}}==
==[[ALGOL 68]]==
{{trans|FORTRAN}}
{{trans|FORTRAN}}


Line 66: Line 70:
</pre>
</pre>


=={{header|AppleScript}}==
==[[AppleScript]]==
on getArrayValue(array, location)
on getArrayValue(array, location)
-- very important -- The list index starts at 1 not 0
-- very important -- The list index starts at 1 not 0
Line 72: Line 76:
end getArrayValue
end getArrayValue


=={{header|AutoHotkey}}==
==[[AutoHotkey]]==
Arrays use one-based indexing. Array0 contains the number of elements.
Arrays use one-based indexing. Array0 contains the number of elements.
<lang autohotkey>string = abcde
<lang autohotkey>string = abcde
Line 79: Line 83:
MsgBox, % array%A_Index%</lang>
MsgBox, % array%A_Index%</lang>


=={{header|AWK}}==
==[[AWK]]==
This shows how a string is split into elements of the array a, which is iterated over, and its elements printed to stdout. Note that the order is not as original, because the array is implemented as a hash table.
This shows how a string is split into elements of the array a, which is iterated over, and its elements printed to stdout. Note that the order is not as original, because the array is implemented as a hash table.
$ awk 'BEGIN{split("a b c d",a);for(i in a)print a[i]}'
$ awk 'BEGIN{split("a b c d",a);for(i in a)print a[i]}'
Line 87: Line 91:
c
c


=={{header|C}}==
==[[C]]==
<lang c> int array_index(int array[], int index) {
<lang c> int array_index(int array[], int index) {
return array[index];
return array[index];
}</lang>
}</lang>


=={{header|C sharp|C#}}==
==[[C sharp|C#]]==
int getArrayValue( int values[], int index ) {
int getArrayValue( int values[], int index ) {
return values[index];
return values[index];
}
}


=={{header|C++}}==
==[[C++]]==


<lang cpp> template<typename T>
<lang cpp> template<typename T>
Line 104: Line 108:
}</lang>
}</lang>


=={{header|ColdFusion}}==
==[[ColdFusion]]==
<cfset arr = ArrayNew(1)>
<cfset arr = ArrayNew(1)>
<cfset arr[1] = "one">
<cfset arr[1] = "one">
Line 114: Line 118:
''ColdFusion Arrays are '''NOT''' zero-based, their index begins at '''1'''''
''ColdFusion Arrays are '''NOT''' zero-based, their index begins at '''1'''''


=={{header|Common Lisp}}==
==[[Common Lisp]]==
(defun array-value (array index)
(defun array-value (array index)
(aref array index))
(aref array index))


=={{header|D}}==
==[[D]]==
Generic, template-based method. Allows retriving elements
Generic, template-based method. Allows retriving elements
of arrays and objects having opIndex method implemented.
of arrays and objects having opIndex method implemented.
Line 165: Line 169:
</lang>
</lang>


=={{header|Delphi}}/{{header|Object Pascal}}/Standard {{header|Pascal}}==
==[[Delphi}}/[[Object Pascal}}/Standard [[Pascal]]==


Arrays in all the flavors of pascal can be of any valid base type, or user defined type (which are all made up of base types) and are multi-dimensional. With Delphi dynamic arrays were defined but had been used in pascal since its inception.
Arrays in all the flavors of pascal can be of any valid base type, or user defined type (which are all made up of base types) and are multi-dimensional. With Delphi dynamic arrays were defined but had been used in pascal since its inception.
Line 213: Line 217:
where n is the array index who's base is either 1 or 0 depending on how it was declared.
where n is the array index who's base is either 1 or 0 depending on how it was declared.


=={{header|E}}==
==[[E]]==


<lang e>def value := array[index]</lang>
<lang e>def value := array[index]</lang>


=={{header|Erlang}}==
==[[Erlang]]==
:''Array module work with arrays'':
:''Array module work with arrays'':


Value = array:get(Index, Array).
Value = array:get(Index, Array).


=={{header|Forth}}==
==[[Forth]]==
Forth does not have special syntax for array access. Address arithmetic is used to access contiguous memory.
Forth does not have special syntax for array access. Address arithmetic is used to access contiguous memory.
create array 1 , 2 , 3 , 4 ,
create array 1 , 2 , 3 , 4 ,
array 2 cells + @ . \ 3
array 2 cells + @ . \ 3


=={{header|Fortran}}==
==[[Fortran]]==
In ANSI Fortran 90 or later:
In ANSI Fortran 90 or later:
real, dimension(-10:20) :: a ! a one-dimensional real array indexed from -10 to 20
real, dimension(-10:20) :: a ! a one-dimensional real array indexed from -10 to 20
Line 251: Line 255:




=={{header|Groovy}}==
==[[Groovy]]==
Define an array
Define an array
arr = ['groovy', 'is', 'a', 'great', 'language']
arr = ['groovy', 'is', 'a', 'great', 'language']
Line 267: Line 271:
arr[0..2, -1] // *** ['groovy', 'is', 'a', 'language']
arr[0..2, -1] // *** ['groovy', 'is', 'a', 'language']


=={{header|Haskell}}==
==[[Haskell]]==


Arrays can have arbitrary bounds (not restricted to integer values, any instance of ''Ix'' will do):
Arrays can have arbitrary bounds (not restricted to integer values, any instance of ''Ix'' will do):
Line 279: Line 283:
Here, ''result'' will be equal to "an". It should be noted that in Haskell lists are often used instead of arrays.
Here, ''result'' will be equal to "an". It should be noted that in Haskell lists are often used instead of arrays.


=={{header|IDL}}==
==[[IDL]]==
; this is allowed:
; this is allowed:
result = arr(5)
result = arr(5)
Line 287: Line 291:
The form with square brackets is preferred as it unambiguously constitutes array access, while the version with round ones can conflict with a function call if there are both a function and an array with the same name <tt>arr</tt>.
The form with square brackets is preferred as it unambiguously constitutes array access, while the version with round ones can conflict with a function call if there are both a function and an array with the same name <tt>arr</tt>.


=={{header|J}}==
==[[J]]==


Arrays are the only way J handles data, so every program that produces a portion of a given array is relevant here. In these few examples emphasis is on the primary verb <tt>{</tt> ("from").
Arrays are the only way J handles data, so every program that produces a portion of a given array is relevant here. In these few examples emphasis is on the primary verb <tt>{</tt> ("from").
Line 323: Line 327:
30 31
30 31


=={{header|Java}}==
==[[Java]]==
Object element = array[index];
Object element = array[index];


=={{header|JavaScript}}==
==[[JavaScript]]==
var element = array[index];
var element = array[index];


=={{header|Logo}}==
==[[Logo]]==
print item 1 {10 20 30} ; 10
print item 1 {10 20 30} ; 10


=={{header|LSE64}}==
==[[LSE64]]==
10 array :array
10 array :array
array 5 [] @ # contents of sixth cell in array
array 5 [] @ # contents of sixth cell in array


=={{header|Mathematica}}==
==[[Mathematica]]==
<lang Mathematica>
<lang Mathematica>
element = array[[index]]
element = array[[index]]
Line 342: Line 346:
First index is 1, negative indices count from the back, -1 being the last element. [ [ 0 ] ] returns the head. The [ [ ] ]-command (Part) works not only on a list, it works on everything: graphics, equations, matrices of any dimension et cetera. To dig deeper you can specifiy multiple indices [ [ a, b, c ] ] to get the c<sup>th</sup> element of the b<sup>th</sup> element of the a<sup>th</sup> element. For any level you can specify a range using ;;, i.e.: a;;b;;c would give elements a through b in steps of c. If a is not given it will assume 1, if b is not give it will be -1, if c is not given it will be 1.
First index is 1, negative indices count from the back, -1 being the last element. [ [ 0 ] ] returns the head. The [ [ ] ]-command (Part) works not only on a list, it works on everything: graphics, equations, matrices of any dimension et cetera. To dig deeper you can specifiy multiple indices [ [ a, b, c ] ] to get the c<sup>th</sup> element of the b<sup>th</sup> element of the a<sup>th</sup> element. For any level you can specify a range using ;;, i.e.: a;;b;;c would give elements a through b in steps of c. If a is not given it will assume 1, if b is not give it will be -1, if c is not given it will be 1.


=={{header|MAXScript}}==
==[[MAXScript]]==
item = arr[index]
item = arr[index]


=={{header|mIRC Scripting Language}}==
==[[mIRC Scripting Language]]==
{{works with|mIRC Script Editor}}
{{works with|mIRC Script Editor}}
{{works with|mArray Snippet}}
{{works with|mArray Snippet}}
Line 352: Line 356:
alias readmyarray { echo -a $array_read(MyArray, 2, 3) }
alias readmyarray { echo -a $array_read(MyArray, 2, 3) }


=={{header|Modula-3}}==
==[[Modula-3]]==
<pre>
<pre>
VAR arr := ARRAY [1..3] OF INTEGER {1, 2, 3};
VAR arr := ARRAY [1..3] OF INTEGER {1, 2, 3};
Line 358: Line 362:
</pre>
</pre>


=={{header|Nial}}==
==[[Nial]]==
Nial is an array programming language. Thus it has a variety of ways
Nial is an array programming language. Thus it has a variety of ways
to retrieve elements of an (even multi-dimensional) array.
to retrieve elements of an (even multi-dimensional) array.
Line 381: Line 385:
There are quite a few others (too large to list here).
There are quite a few others (too large to list here).


=={{header|Objective-C}}==
==[[Objective-C]]==
{{works with|GNUstep}}
{{works with|GNUstep}}


Line 390: Line 394:
id element = [array objectAtIndex:index];</lang>
id element = [array objectAtIndex:index];</lang>


=={{header|OCaml}}==
==[[OCaml]]==
let element = array.(index)
let element = array.(index)


=={{header|Octave}}==
==[[Octave]]==


<lang octave>a = [1:10];
<lang octave>a = [1:10];
Line 403: Line 407:




=={{header|Perl}}==
==[[Perl]]==
{{works with|Perl|5.8.8}}
{{works with|Perl|5.8.8}}
$elem = $array[0];
$elem = $array[0];


=={{header|PHP}}==
==[[PHP]]==
<lang php> $array = array('php', 'has', 'arrays');
<lang php> $array = array('php', 'has', 'arrays');
// First element
// First element
$elem = $array[0];</lang>
$elem = $array[0];</lang>


=={{header|Pop11}}==
==[[Pop11]]==
lvars ar = {1 two 'three'};
lvars ar = {1 two 'three'};
lvars elem;
lvars elem;
Line 420: Line 424:
This example uses the simplest possible array (a vector). Pop11 has more general arrays, but in all cases access follows the same pattern, and look the same as procedure (function) call.
This example uses the simplest possible array (a vector). Pop11 has more general arrays, but in all cases access follows the same pattern, and look the same as procedure (function) call.


=={{header|Python}}==
==[[Python]]==
{{works with|Python|2.5}}
{{works with|Python|2.5}}
The item is an element in a list at a given index
The item is an element in a list at a given index
Line 432: Line 436:
'''Note:''' When using the pop() method, the element is removed from the list.
'''Note:''' When using the pop() method, the element is removed from the list.


=={{header|R}}==
==[[R]]==


An element from a vector can be retrieved with the []; slices can be taken using ranges or another vector of indexes.
An element from a vector can be retrieved with the []; slices can be taken using ranges or another vector of indexes.
Line 445: Line 449:
print(a[2,1])</lang>
print(a[2,1])</lang>


=={{header|Ruby}}==
==[[Ruby]]==
<lang ruby> ary = ['Ruby','rules','big','time']
<lang ruby> ary = ['Ruby','rules','big','time']
#the first element
#the first element
Line 467: Line 471:
# => element = "big"</lang>
# => element = "big"</lang>


=={{header|Scheme}}==
==[[Scheme]]==
Lists are more often used in Scheme than vectors
Lists are more often used in Scheme than vectors
<lang scheme> (vector-ref array index)</lang>
<lang scheme> (vector-ref array index)</lang>


=={{header|Slate}}==
==[[Slate]]==
<lang slate>{$a. #(1 2). 'b'. True} at: 2</lang>
<lang slate>{$a. #(1 2). 'b'. True} at: 2</lang>


=={{header|Smalltalk}}==
==[[Smalltalk]]==
<lang smalltalk> #($a $b $c) at: 2</lang>
<lang smalltalk> #($a $b $c) at: 2</lang>


=={{header|Standard ML}}==
==[[Standard ML]]==
val element = Array.sub (array, index)
val element = Array.sub (array, index)


=={{header|Tcl}}==
==[[Tcl]]==
All arrays in Tcl are associative. If "key" is the variable that holds the key of the element to be retrieved, then
All arrays in Tcl are associative. If "key" is the variable that holds the key of the element to be retrieved, then
<lang tcl>set result $array($key)</lang>
<lang tcl>set result $array($key)</lang>
Line 486: Line 490:
<lang tcl>set result [lindex $list $index]</lang>
<lang tcl>set result [lindex $list $index]</lang>


=={{header|Toka}}==
==[[Toka]]==
This retrieves the value 20 from the second item in the array:
This retrieves the value 20 from the second item in the array:


Line 498: Line 502:
table 1 array.get
table 1 array.get


=={{header|X86 assembly}}==
==[[X86 assembly]]==
{{works with|nasm}}
{{works with|nasm}}