foldIndexed

inline fun <T, R> Array<out T>.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, T) -> R
): R
(source)
inline fun <R> ByteArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Byte) -> R
): R
(source)
inline fun <R> ShortArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Short) -> R
): R
(source)
inline fun <R> IntArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Int) -> R
): R
(source)
inline fun <R> LongArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Long) -> R
): R
(source)
inline fun <R> FloatArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Float) -> R
): R
(source)
inline fun <R> DoubleArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Double) -> R
): R
(source)
inline fun <R> BooleanArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Boolean) -> R
): R
(source)
inline fun <R> CharArray.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, Char) -> R
): R
(source)

Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element with its index in the original array.

Parameters

operation - function that takes the index of an element, current accumulator value and the element itself, and calculates the next accumulator value.

inline fun <T, R> Iterable<T>.foldIndexed(
    initial: R,
    operation: (index: Int, acc: R, T) -> R
): R
(source)

Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element with its index in the original collection.

Parameters

operation - function that takes the index of an element, current accumulator value and the element itself, and calculates the next accumulator value.