February 2018
Intermediate to advanced
350 pages
7h 35m
English
A partial function (not to be confused with partial applied function) is a function that is not defined for every possible value of its parameter type. In contrast, a total function is a function that is defined for every possible value.
Let's have a look at the following example:
fun main(args: Array<String>) { val upper: (String?) -> String = { s:String? -> s!!.toUpperCase()} //Partial function, it can't transform null listOf("one", "two", null, "four").map(upper).forEach(::println) //NPE}
The upper function is a partial function; it can't process a null value despite the fact that null is a valid String? value. If you try to run this code, it will throw a NullPointerException (NPE).
Arrow provides an explicit type
Read now
Unlock full access