Мне часто нужно суммировать преобразование списка чисел в Scala. Конечно, это можно сделать следующим образом:
list.map(transform(_)).sum
Однако это создает память, когда создание памяти не требуется. Альтернатива - свернуть список.
list.foldLeft(0.0) { (total, x) => total + f(x) }
Я считаю, что первое выражение гораздо легче написать, чем второе выражение. Есть ли способ, который я могу использовать, который имеет простоту первого с эффективностью второго? Или мне лучше написать свой собственный неявный метод?
list.mapSum(transform(_))