Returns an array obtained by evaluating the supplied function once for each pair of members at the same position in the two supplied arrays.
array:for-each-pair
( $array1
as array(*)
,$array2
as array(*)
,$function
as function(item()*, item()*) as item()*
array(*)
Returns the result of the recursive expression:
if (array:size($array1) eq 0 or array:size($array2) eq 0)
then [ ]
else array:concat(
$function(array:head($array1), array:head($array2)),
array:for-each-pair(array:tail($array1), array:tail($array2), $function)
)
The expression array:for-each-pair(["A", "B", "C"], [1, 2, 3], function($x, $y) { array {$x, $y}})
returns [["A", 1], ["B", 2], ["C", 3]]
.
The expression let $A := ["A", "B", "C", "D"] return array:for-each-pair($A, array:tail($A), concat#2)
returns ["AB", "BC", "CD"]
.
If the arrays have different size, excess members in the longer array are ignored.