|
|
|
|
- Operating mode
- Existing computations
<Array>.Reduce (Function) In french: <Tableau>.Agrège Applies a computation to each element of a WLanguage array.
arrValue is array of int = [1,2,3,4,5] TheSum is int TheSum = arrValue.Reduce((Value, TheSum) => { RESULT Value + TheSum }, 0) // Note: this example is for illustrative purposes; to find the sum of elements of an array, // it is preferable to use the Sum function Syntax
<Result> = <Array>.Reduce(<Operation to perform> [, <InitialValue>])
<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. <InitialValue>: 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 exampleLet's study the following example: arrValue is array of int = [1,2,3,4,5] TheSum is int TheSum = arrValue.Reduce((Value, TheSum) => { RESULT Value + TheSum }, 0) In this example, the code: TheSum = arrValue.Reduce((Value, TheSum) => { RESULT Value + TheSum }, 0) is equivalent to the following code: TheSum = arrValue.Reduce(Adds, 0) INTERNAL PROCEDURE Adds(Value, Total) RESULT Value + Total END With this internal Procedure, it is possible to split the calculation 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 <Array>.Sum. Existing computations The most common computations are available in WLanguage:
| | <Array>.Mean | Calculates the mean of several elements: - elements found in an array,
- numeric values, ...
| <Array>.Sum | Calculates the sum of the array elements. |
Sequence of functionsYou 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: gnMoyenne = gtabUser.Filtre(cbFiltre).Transforme(cbTransforme).Moyenne()
Related Examples:
|
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
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|