Higher Order Function Kotlin
1 min readMar 11, 2022
Definition:
A function which can accepts a function as parameter or can returns a function is called Higher-Order function. Instead of Integer, String or Array as a parameter to function, we will pass anonymous function or lambdas.
What is () -> unit in Kotlin?
The Unit type in Kotlin is the equivalent to the void type in Java.
Example:
typealias HigherFun = (String,String) -> Unit
typealias Lmbd= () -> Unit
var lambda = { println("Tell me about yourself....?") }
fun callingHigherFuncLmbd( lmbd: Lmbd ) {
lmbd() //Invoke Lambda Expression
//or by invoke method
//lmbd.invoke()
}
fun callingHigherFunWithParam(listener: HigherFun){
listener("Good Evening ","Jack") //Invoke higher oreder Fun
//or by invoke method
// listener.invoke("","")
}
fun callingHigherFunWithParams(name :String,listener: HigherFun){
listener("I'm ",name+" with basic programming skills.") //Invoke higher oreder Fun
//or by invoke method
// listener.invoke("","")
}
fun main(args: Array<String>) {
val name ="Jones"
callingHigherFuncLmbd(lambda) // sepertate fun for calling lmbd higher order functiom
callingHigherFunWithParam { var1: String, var2: String ->
println(var1+var2) // Definition of Higher Order Fun with param
}
// sepertate fun for calling higher order functiom with param
callingHigherFunWithParams(name,{ var1: String, var2: String ->
println(var1+var2)
})
}