February 2018
Intermediate to advanced
350 pages
7h 35m
English
What if I told you that you already use functors in Kotlin? Surprised? Let's have a look at the following code:
fun main(args: Array<String>) { listOf(1, 2, 3) .map { i -> i * 2 } .map(Int::toString) .forEach(::println)}
The List<T> class has a function, map(transform: (T) -> R): List<R>. Where does the name map come from? It came from category theory. What we do when we transform from Int to String, is we map from the Int category to the String category. In the same sense, in our example, we transform from List<Int> to List<Int> (not that exciting), and then from List<Int> to List<String>. We didn't change the external type, just the internal value.
And that is a functor. A functor is a type that defines a way to transform or ...
Read now
Unlock full access