Поиск первой доступной цены вызывает расчёт миллион раз
val ids = (1..1_000_000).toList()
val firstPrice = ids
.map { calculatePrice(it) }
.first { it > 0 }
У самого первого товара цена положительная. Сколько раз вызовется calculatePrice?
- 1 000 000 раз: map обходит весь список
- Один раз: first останавливает всю цепочку
- Два раза: один для map и один для first
- Зависит от оптимизаций компилятора
