let и also в Scala
… давно есть. Аналог let — это pipe:
someCollection
.map(pewpew)
.pipe(all => if (all.size % 2 == 0) all.drop(1) else all)
.sum
а замена also — это tap:
someCollection
.filter(ewew)
.map(pewpew)
.flatMap(...)
.tap(println) // debug
.reduce(...)
В статье, кстати, они сравниваются с башевскими | и tee, а также с |> из F#. Так что сама идея этих функций далеко не нова, Kotlin их просто сделал более попсовыми.
Комментарии