Я работал с Kotlin koan Partition и пришел к этому, который проходит модульный тест:
fun Shop.getCustomersWithMoreUndeliveredOrdersThanDelivered(): Set<Customer> =
customers.filter{it.orders.partition{it.isDelivered}
.let{(delivered, undelivered) -> delivered.size < undelivered.size}}.toSet()
Это вариант решения:
fun Shop.getCustomersWithMoreUndeliveredOrdersThanDelivered(): Set<Customer> =
customers.filter {
val (delivered, undelivered) = it.orders.partition { it.isDelivered }
undelivered.size > delivered.size
}.toSet()
Есть ли причины предпочесть одно из этих решений другому?