Это простой, но уродливый способ сделать это за один цикл:
inline fun<T> Iterable<T>.forEachUpDown(action: (T) -> Unit): Unit {
for (index in 0 until this.count()) {
action(this.elementAt(index))
action(this.elementAt(this.count()-index-1))
}
}
и вызов:
(0..6).forEachUpDown {
colorized(colors,it)
}
, поскольку (0..6) является итеративным, он может быть только пройден, и элементы не могут быть доступны по индексу.
Более эффективный способ сделать это всего за один цикл - это:
val max=6
for (index in 0 until max) {
colorized(colors, index)
colorized(colors, max-index-1)
}
, но, лично я думаю, ваш путь понятнее.