English | 简体中文

api-docs / org.ktorm.entity / reduce

reduce

inline fun <E : Any, K : Any> EntityGrouping<E, *, K>.reduce(
    operation: (key: K?, accumulator: E, element: E) -> E
): Map<K?, E>
(source code)

Groups elements from the source sequence by key and applies the reducing operation to the elements of each group
sequentially starting from the second element of the group, passing the previously accumulated value and the current
element as arguments, and stores the results in a new map. An initial value of accumulator is the first element of
the group.

This function is delegated to Grouping.reduce, more details can be found in its documentation.

inline fun <E : Any> EntitySequence<E, *>.reduce(
    operation: (acc: E, E) -> E
): E
(source code)

Accumulate value starting with the first element and applying operation from left to right to current accumulator
value and each element.

Throws an exception if this sequence is empty. If the sequence can be empty in an expected way, please use
reduceOrNull instead. It returns null when its receiver is empty.

The operation function takes the current accumulator value and an element, and calculates the next
accumulator value.

The operation is terminal.