Higher-order functions on collections
We briefly touched on this topic in Chapter 1, Getting Started with Kotlin, but before we can discuss streams, let's make sure that those of us who come from languages that don't have higher-order functions on collections know what they are, what they do, and what the benefits of using them are.
We won't be able to cover all of the functions available on collections, but we'll cover the most widely used ones.
Mapping elements
The map()
function takes each element of a collection and returns a new element of a possibly different type. To understand this idea better, let's say we have a list of letters and we would like to output their ASCII values.
First, let's implement it in an imperative way:
val letters = 'a'..'z' val ascii = mutableListOf<Int>() for (l in letters) { ascii.add(l.toInt()) }
Notice that even for such a trivial task, we had to write...