Array Module
From BaseX Documentation
(Difference between revisions)
(→array:foldleft) 
(→array:foldright) 

Line 204:  Line 204:  
{ width='100%'  { width='100%'  
 width='120'  '''Signatures'''   width='120'  '''Signatures'''  
  {{Funcarray:foldleft$array as array(*), $function as function(item()*, item()*) as item()*item()*}}  +  {{Funcarray:foldleft$array as array(*), $zero as item()*, $function as function(item()*, item()*) as item()*item()*}} 
    
 '''Summary'''   '''Summary'''  
   Evaluates the supplied {{Code$function}} cumulatively on successive members of the supplied {{Code$array}} from right to left.  +   Evaluates the supplied {{Code$function}} cumulatively on successive members of the supplied {{Code$array}} from right to left and using {{Code$zero}} as first argument. 
}  }  
Revision as of 20:51, 9 August 2014
This XQuery Module contains functions for manipulating arrays, which will officially be introduced with XQuery 3.1.
Please note that the functions are subject to change until the specification has reached its final stage.
Contents 
Conventions
All functions in this module are assigned to the http://www.w3.org/2005/xpathfunctions/array
namespace, which is statically bound to the array
prefix.
Functions
array:size
Signatures  array:size($input as array(*)) as xs:integer

Summary  Returns the number of members in $array . Note that because an array is an item, the fn:count function when applied to an array always returns 1 .

Examples 

array:append
Signatures  array:append($array as array(*), $member as item()*) as array(*)

Summary  Returns a copy of $array with a new $member attached.

Examples 

array:subarray
Signatures  array:subarray($array as array(*), $index as xs:integer) as array(*) array:subarray($array as array(*), $index as xs:integer, $length as xs:integer) as array(*)

Summary  Constructs a new array with with $length members of $array beginning from the specified $index .The twoargument version of the function returns the same result as the threeargument version when called with $length equal to the value of array:size($array)  $index + 1 .

Errors  FOAY0001 :: $index is less than one, or if $index + $length is greater than array:size($array) + 1 .FOAY0002 :: $length is less than zero.

Examples 

array:remove
Signatures  array:remove($array as array(*), $index as xs:integer) as array(*)

Summary  Returns a copy of $array without the member at the specified $index .

Errors  FOAY0001 :: $index is not in the range 1 to array:size($array) inclusive.

Examples 

array:insertbefore
Signatures  array:insertbefore($array as array(*), $index as xs:integer, $member as item()*) as array(*)

Summary  Returns a copy of $array with one new $member at the specified $index . Setting $index to the value array:size($array) + 1 yields the same result as array:append($array, $insert) .

Errors  FOAY0001 :: $index is not in the range 1 to array:size($array) + 1 inclusive.

Examples 

array:head
Signatures  array:head($array as array(*)) as item()*

Summary  Returns the first member of $array . This function is equivalent to the expression $array(1) .

Errors  FOAY0001 :: The array is empty.

Examples 

array:tail
Signatures  array:tail($array as array(*)) as array(*)

Summary  Returns a new array with all members except the first from $array . This function is equivalent to the expression array:remove($array, 1) .

Errors  FOAY0001 :: The array is empty.

Examples 

array:reverse
Signatures  array:reverse($array as array(*)) as array(*)

Summary  Returns a new array with all members of $array in reverse order.

Examples 

array:join
Signatures  array:join($arrays as array(*)*) as array(*)

Summary  Concatenates the contents of several $arrays into a single array.

Examples 

array:foreachmember
Signatures  array:foreachmember($array as array(*), $function as function(item()*) as item()*) as array(*)

Summary  Returns a new array, in which each member is computed by applying $function to the corresponding member of $array .

Examples  The following query returns the array [2, 3, 4, 5, 6] :
array:foreachmember( array { 1 to 5 }, function($i) { $i + 1} ) 
array:filter
Signatures  array:filter($array as array(*), $function as function(item()*) as xs:boolean) as array(*)

Summary  Returns a new array with those members of Template:$array for which $function returns true .

Examples  The following query returns the array [0, 1, 3] :
array:filter( array { 0, 1, 2, 3, 4 }, function($i) { $i > 0 } ) 
array:foldleft
Signatures  array:foldleft($array as array(*), $zero as item()*, $function as function(item()*, item()*) as item()*) as item()*

Summary  Evaluates the supplied $function cumulatively on successive members of the supplied $array from left to right and using $zero as first argument.

array:foldright
Signatures  array:foldleft($array as array(*), $zero as item()*, $function as function(item()*, item()*) as item()*) as item()*

Summary  Evaluates the supplied $function cumulatively on successive members of the supplied $array from right to left and using $zero as first argument.

array:foreachpair
Signatures  array:foreachpair($array1 as array(*), $array2 as array(*), $function as function(item()*) as item()*) as array(*)

Summary  Returns a new array obtained by evaluating the supplied $function for each pair of members at the same position in $array1 and $array2 .

Examples  The following query returns the array [5, 7, 9] :
array:foreachpair( array { 1 to 3 }, array { 4 to 6 }, function($a + $b) { $a + $b } ) 
array:serialize
Signatures  map:serialize($input as map(*)) as xs:string 
Summary  This function is specific to BaseX. It returns a string representation of the supplied array. The purpose of this function is to get an insight into the structure of an array item; it cannot necessarily be used for reconstructing the original array. 
Examples 

Errors
Code  Description 

FOAY0001
 The specified index extends beyonds the bounds of an array. 
FOAY0002
 The specified length is less than zero. 
Changelog
Introduced with Version 8.0.