Saya telah melihat lambda didefinisikan sebagai fungsi anonim dan sebagai referensi ke suatu fungsi. Javascript mendukung keduanya:
setTimeout(function(){ }, 100)
var f = function(){ }
Di sinilah JS mendapatkan banyak kekuatan dan fleksibilitasnya. Java mendukung yang pertama sampai batas tertentu (implementasi antarmuka anonim), tetapi tidak mendukung yang terakhir - lihat di bawah untuk pembaruan untuk Java 8.
Tidak jelas bagi saya yang mana (atau keduanya) di antaranya adalah definisi lambda yang tepat.
JS jelas bukan bahasa pertama yang mendukung fitur ini. Berangkat dari ingatan, saya pikir itu adalah percakapan kecil yang selalu dipuji oleh para penggemar bahasa tentang mendukung lambda.
BTW: Di Jawa, kelas anonim biasanya digunakan untuk meneruskan definisi kelas dengan cepat untuk sebuah argumen (digunakan banyak dalam ayunan). Sesuatu seperti ini (dari memori, tidak dikompilasi):
someGuiContainer(new WidgetInterface()
{
public void importantMethodToDefine(){
}
}
)
Memperbarui
Java, pada 8, sekarang secara resmi menjadi bahasa Lambda.
Anda sekarang dapat menggunakan sintaks berikut:
MathOperation addition = (int a, int b) -> a + b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
Sumber Kode