ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Queue, stack, list and array functions / Array functions
  • Operating mode
  • Existing computations
  • Equivalence
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Applies a computation to each element of a WLanguage array.
Example
arrValue is array of int = [1,2,3,4,5]
TheSum is int
TheSum = Reduce(arrValue, (Value, ...
SumCalculationVariable) => { RETURN Value + SumCalculationVariable}, 0)
Trace(TheSum)
// note: this example is for illustrative purposes; to find the sum of elements of an array,
// it is preferable to use the Sum function
// -> count the number of strings in an array that contain the letter "e"
// (Prefix syntax)
arr3 is array of strings = ["a","one","some","our","their"]
let Cpt = Reduce(arr3, ( Source, Total ) => { RETURN Total
+ ( Source [=] "e"? 1 ELSE 0 ) }, 0 )
// Cpt = 3
Syntax
<Result> = Reduce(<Array> , <Operation to perform> [, <Initial value>])
<Result>: Type corresponding to the result
Result of the requested reduce operation.
<Array>: WLanguage array
Name of the Array variable to use. This array must be a one-dimensional array.
<Operation to perform>: WLanguage procedure
Name of WLanguage procedure to run. This procedure can be:
  • a global or local procedure,
  • an internal procedure.
It is also possible to directly use a lambda.
<Initial value>: Optional parameter, type corresponding to the initial value
Initial value to use the first time the <Operation to perform> procedure is run.
Remarks

Operating mode

The <Operation to perform> procedure is called a first time with two parameters:
  • the first element of the array,
  • the initial value specified with <Initial value>.
The procedure is then called for all other elements of the array with two parameters:
  • the element of the array,
  • the value returned by the previous call.
Illustrative example
Let's study the following example:
arrValue is array of int = [1,2,3,4,5]
TheSum is int
TheSum = Reduce(arrValue, (Value, TheSum) => { RETURN Value + TheSum }, 0)

In this example, the code:
TheSum = Reduce(arrValue, (Value, TheSum) => { RETURN Value + TheSum }, 0)
is equivalent to the following code:
TheSum = Reduce(arrValue, Adds, 0)

INTERNAL PROCÉDURE Adds(Value, Total)
RETURN Value + Total
END

With this internal procedure, the calculation can be broken down as follows:
  • IntermediateResult1 = Adds (t[1], InitialValue): in the example Adds( 1, 0 ) -> 1
  • IntermediateResult2 = Adds (t[2], IntermediateResult1): in the example Adds( 2, 1 ) -> 3
  • ...
Note: this example is for illustrative purposes; to find the sum of elements of an array, it is preferable to use Sum.

Existing computations

The most common computations are available in WLanguage:
MeanCalculates the mean of several elements:
  • elements found in an array,
  • numeric values, ...
SumCalculates the sum of the array elements.


Sequence of functions
You can use array functions in a sequence.
The following functions can be used in a sequence: This sequence can be used as a source for a FOR ALL statement or it can end with one of the following functions:
Example:
gnMean = garrUser.Filter(cbFilter).Map(cbMap).Mean()

Equivalence

The FOR EACH syntax also allows you to browse through the elements of an array to perform reduce operations.
Related Examples:
Filter / Map / Reduce Unit examples (WINDEV): Filter / Map / Reduce
[ + ] This example shows how to use the Filter / Map / Reduce functions.
The Filter / Map / Reduce concept allows performing operations on sets of data in a remarkably concise way.
Filter is used to filter an array of elements in a customized way (with a callback procedure).
Map is used to transform an array of elements, also with a callback procedure.
Reduce is used to aggregate data in a customized way with a callback procedure.
Here, this example is used to calculate the average age of women among the users displayed in the table below.
Business / UI classification: Neutral code
Component: wd290vm.dll
Minimum version required
  • Version 25
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 09/06/2023

Send a report | Local help