FunctionCopy link to clipboard
reduce( function, initial, list, context )
Calls a rule or function for each item in a list, passing the result of each call to the next one, and returns the value of the last computation.
ParametersCopy link to clipboard
Keyword | Type | Description |
---|---|---|
|
Rule or Function Reference |
Rule or expression function. |
|
Any Type |
The accumulator's initial value. |
|
Any Type |
Array of elements that the function iterates through. |
|
Any Type Array |
Variable number of parameters passed directly into each function evaluation. |
ReturnsCopy link to clipboard
Any Type
Usage considerationsCopy link to clipboard
Referencing expressions and rulesCopy link to clipboard
Use fn!functionName
or a!functionName
to reference an expression function and rule!ruleName
to reference a rule.
The initial accumulator value is given by initial.
Using rules or functions with multiple argumentsCopy link to clipboard
To use rules or functions that take more than two arguments, use the merge() function. For example, given a rule g(x, y, z)
, reduce(rule!g, i, merge({a, b, c}, {d, e, f}))
returns g(g(g(i, a, d), b, e), c, f)
.
Understanding resultsCopy link to clipboard
Returns a scalar value if the function called returns a scalar, and returns a list if the function called returns a list.
LimitationsCopy link to clipboard
Best used when the computation of each operation needs to use the result from the previous operation such as when the result of each operation is an array that should be appended to each other in order. The result from the previous operation is then passed to the subsequent operation as the parameter initial.
a!forEach()
cannot be used within rules used in this function.
ExamplesCopy link to clipboard
Generalized behaviorCopy link to clipboard
Given a function h(x, y)
, reduce(fn!h,initial, {a, b, c}, v)
returns h(h(h(initial, a, v), b, v), c, v)
.
Substitute multiple values from initialValueCopy link to clipboard
1
2
3
4
5
6
reduce(
fn!substitute,
"abcdefg",
{"a", "d", "f"},
"#"
)
Copy
Returns "#bc#e#g"
. The function firsts replaces "a"
from the initialValue. Then "d"
is replaced from the result of the previous substitution. And finally the "f"
is replaced.
Create new list from initial valueCopy link to clipboard
1
2
3
4
5
6
reduce(
fn!insert,
{1},
{2, 3},
1
)
Copy
Returns {3, 2, 1}
. The function firsts inserts 2
at the first position and then inserts 3
into the first position of the resulting list from the first insert.
Feature compatibilityCopy link to clipboard
The table below lists this function's compatibility with various features in Appian.
Feature | Compatibility | Note |
---|---|---|
Portals | Compatible | |
Offline Mobile | Compatible | |
Sync-Time Custom Record Fields | Compatible | Can be used to create a custom record field that only evaluates at sync time. |
Real-Time Custom Record Fields | Incompatible | Custom record fields that evaluate in real time must be configured using one or more Custom Field functions. |
Process Reports | Incompatible | Cannot be used to configure a process report. |
Process Events | Incompatible | Cannot be used to configure a process event node, such as a start event or timer event. |
Process Autoscaling | Compatible |