A programming language that supports first-class functions allows you to:
- Assign a function to a variable
- Pass a function to another function as an argument
- Return a function from another function as a result
Kotlin allows you to do all three of these.
Assigning Functions
There are a few different ways that you can assign a function to a variable in Kotlin.
Anonymous Function
val add = fun(a: Int, b: Int) = a + b
Lambda
val subtract = { a: Int, b: Int -> a - b }
Function Reference
If the method already exists, you can assign it by means of a function reference
fun doMultiply(a: Int, b: Int) = a * b
val multiply = ::doMultiply
Functions as Arguments and Results
For examples of passing a function as an argument or a result, see higher-order function.