lambda function

افضل ان اسميها الدالة المضمنة وذلك لأن من الوهلة الأولى عند النظر إليها تستنكر أنها دالة فنحن كما تعلمنا أننا نقوم بأنشاء متغير وفتح قوسين ومن الممكن تمرير متغيرات لهذا القوسين الدائريين ومن ثم الأقواس المربعة وبداخلها الجمل البرمجية المراد تنفيذها ، حتى تأتينا lambda  وتكسر هذه القاعدة وتصبح مضمنة بداخل متغير أي أننا نعرف متغير القيمة الذي يحملها هي دالة .
الصيغة العامة تكون بهذا الشكل 

val printMessage = {
    println("Hello, world!")
}

يمكن استدعاء الدالة او تنفيذها بكتابة الشفرة

printMessage()
// or
printMessage.invoke()

اما اذا اردنا تمرير متغيرات الى الدالة فاننا سنستخدم الشفرة القادمة وسيتم تضمين المتغيرات داخلها كما ستلاحظ

var printName = { name :String -> println("Hello $name")}

 نقوم بفتح أقواس مربعة وبداخلها نعرف المتغيرات التي سيتم تمريرها ومن ثم السهم ويليه جسم الدالة وهي الأوامر المراد تنفيذها .

مثال :

val total : (Int , Int)->Int = {num1 , num2 -> num1+num2}

وبداخل الدالة الرئيسية :

fun main(args:Array<String>){

    println("the total is :"+total(6,5))

}