В Kotlin есть два способа объявления анонимной функции (также известной как лямбда). Два разных синтаксиса:
val lambda = { input : String ->
"received ${input}"
}
а также
val anonymousFunction = fun (input : String): String {
return "received ${input}"
}
Я понимаю разницу между ними (как указано в этом ответе), но что я Не понимаю, почему в языке есть два разных способа объявить одно и то же.
Есть ли оптимизация под капотом одного по сравнению с другим? Версия анонимной функции была сочтена слишком многословной? Может ли лямбда-версия синтаксиса не поддерживать возвращаемый тип?