fun main() {
val lambda = fun(str: String){ println(str) }
lambda("lambda")
val lambda2: (String, Int) -> String = {name, age -> "My name is $name and $age years old"}
val lambda2_1 = {name: String, age: Int -> "My name is $name and $age years old"}
println(lambda2("lambda2", 26))
println(lambda2_1("lambda2_1", 23))
val lambda3: (String, Int) -> Unit = {name, age -> println("My name is $name and $age years old")}
val lambda3_1 = {name: String, age: Int -> println("My name is $name and $age years old")}
lambda3("lambda3", 26)
lambda3_1("lambda3_1", 26)
val lambda4: () -> String = { "My name is lambda4 and 26 years old" }
val lambda4_1 = { "My name is lambda4 and 26 years old" }
println(lambda4())
println(lambda4_1())
println(funcUsingLambda(100, 200, ::sum))
val lambda5: (Int, Int) -> Int = {para1, para2 -> para1 + para2}
val lambda5_1 = {param1: Int, param2: Int -> param1 + param2}
println(funcUsingLambda(300, 400, lambda5))
println(funcUsingLambda(500, 600, lambda5_1))
println( funcUsingLambda(700, 900, {param1: Int, param2: Int -> param1 + param2}) )
println( funcUsingLambda(700, 900) { param1: Int, param2: Int -> param1 + param2 } )
}
fun sum(param1: Int, param2: Int) = param1 + param2
fun funcUsingLambda(param1: Int, param2: Int, lambda: (Int, Int) -> Int) = lambda(param1, param2)