View this page in the latest version of Appian. reduce() Function Share Share via LinkedIn Reddit Email Copy Link Print On This Page Function 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. Parameters Keyword Type Description function Rule or Function Reference Rule or expression function. initial Any Type The accumulator's initial value. list Any Type Array of elements that the function iterates through. context Any Type Array Variable number of parameters passed directly into each function evaluation. Returns Any Type Usage considerations Referencing expressions and rules Use fn!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 arguments 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 results Null lists return a null list without executing the function. Returns a scalar value if the function called returns a scalar, and returns a list if the function called returns a list. Limitations and alternatives 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. Examples 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). reduce(fn!sum, 0, {1, 2, 3}) returns 6 Feature compatibility 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 Process Reports Incompatible You cannot use this function to configure a process report. Process Events Incompatible You cannot use this function to configure a process event node, such as a start event or timer event. Feedback Was this page helpful? SHARE FEEDBACK Loading...