Apa itu kode "lambda"?

16

Saya baru-baru ini mendengar orang berbicara tentang kode "lambda". Saya belum pernah mendengar ungkapan ini sebelumnya. Apa artinya?

Oliver Moran
sumber
Itu benar. Beberapa kali. Saya bahkan mencobanya beberapa kali - tetapi sayangnya tidak berhasil. Mungkin Anda akan lebih beruntung? Terima kasih kepada mereka yang menjawab.
Oliver Moran
10
@Oliver, bagian dari mengajukan pertanyaan di sini adalah untuk juga menunjukkan apa yang telah Anda lakukan untuk menjawab pertanyaan itu sehingga orang tidak mencoba hal-hal yang sama yang Anda lakukan dan terjebak. Dengan menentukan di mana di Wikipedia atau tautan Google Anda merasa bingung, ini memastikan pertanyaan Anda dijawab lebih baik karena pada tingkat umum jawabannya mungkin bukan yang Anda inginkan karena hanya merujuk apa yang tidak Anda dapatkan sebelumnya. Coba pertimbangkan apa yang diposkan orang lain dan lihat apa yang terjadi. Anda mungkin terkejut dengan hasilnya.
JB King
7
Saya merasa rap dapat dibuat dari ini - "kode saya jadi lambda". Tapi saya tidak bisa merasakannya sepadan dengan apa pun. :-)
Paul Nathan
1
@JB King + JB King - Terima kasih atas komentar sopan Anda. Secara umum, apa yang Anda berdua katakan masuk akal. Namun, tergantung pada kueri, terkadang pertanyaan singkat dan terbuka lebih baik dalam memunculkan jenis balasan yang tidak ditemukan di tempat lain. Pertanyaan saya justru menghasilkan jawaban yang saya cari. Saya mengutarakannya agar bisa. Saya harap jawaban di bawah ini bermanfaat bagi orang lain dengan pertanyaan yang sama. Sungguh ironis bahwa saya puas dengan jawaban pada saat yang sama bahwa beberapa kecewa dengan pertanyaan itu.
Oliver Moran
2
@ Paul Nathan - kode Anda begitu lambda Anda jelas tidak pernah berencana untuk bekerja dengan standar apa pun; itu lebih kasar dari seorang sander!
glenatron

Jawaban:

20

Ekspresi Lambda adalah abstraksi (kadang-kadang disebut sebagai fungsi anonim), aplikasi atau variabel (sebagian besar bahasa juga menambahkan konstanta ke daftar ini). Istilah Lambda belum tentu berfungsi, dan belum tentu dinyatakan sebagai parameter, meskipun ini adalah praktik yang umum.

Contoh umum ekspresi lambda di C #

Sebagai contoh:

List<int> items = new List<int>();
items.add(1);
items.add(2);
items.add(1);
items.add(3);

int CountofOnes = items.FindAll(item => item == 1).Count();

Console.Out.WriteLine(CountofOnes);

akan menampilkan: 2

Dalam kode ini, saya meneruskan konstruksi lambda ke FindAllfungsi .NET'sList .

items.FindAll(item => item == 1)

Lambda dalam panggilan ini mengeksekusi persamaan sederhana dan mengembalikan boolean, mengatakan FindAllapa yang harus dilakukan.

Timothy Groote
sumber
2
Itu tidak sepenuhnya benar. Ekspresi Lambda adalah abstraksi (tidak harus kecil ), aplikasi atau variabel (sebagian besar bahasa juga menambahkan konstanta ke daftar ini). Istilah Lambda belum tentu berfungsi, dan belum tentu dinyatakan sebagai parameter.
SK-logic
Anda benar, saya akan mengubah jawaban demi kejelasan.
Timothy Groote
3
Tolong beri saya contoh ekspresi lambda yang bukan fungsi.
Ingo
1
@Ingo, ini adalah terminologi kalkulus lambda, tentu saja. en.wikipedia.org/wiki/Lambda_calculus#Lambda_terms
SK-logic
1
@ SK-logic Saya lebih suka melihatnya secara berbeda. Bahasa seperti Haskell dan C # memungkinkan untuk mengikat fungsi ke nama dalam konstruksi let (rec) atau dalam bentuk "super-combinators" (yaitu binding fungsi tingkat atas), dan ini saya lihat sebagai perbedaan besar yang saya lakukan tidak merasa benar untuk menerapkan terminologi lambda asli di sini. Karena tidak ada hal seperti itu mungkin di LC (itulah sebabnya Anda memerlukan kombinator Y untuk rekursi). Hasil ((\ xy -> x) a) dan (const a) di Haskell adalah sama dan keduanya adalah aplikasi, tetapi saya hanya akan menggunakan istilah pertama sebagai "aplikasi lambda".
Ingo
3

Fungsi anonim (tanpa nama) atau objek yang biasanya diuraikan sebagai argumen ke fungsi lain.

Oleh karena itu, namespace kurang tercemar.

Buyuciev Blagovest
sumber
1

Lambda biasanya merujuk pada ekspresi fungsi dalam konteks pemrograman fungsional.

Ini adalah ekspresi lambda dalam python:

lambda x: x + 1

Merupakan fungsi yang menambah parameternya xdengan 1.

Pablo Santa Cruz
sumber