Higher Order Function Kotlin

App Devops
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)
})
}

--

--