Menu
CoddyTech

Pengenalan Ekspresi Lambda

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 42 dari 56.

Ekspresi lambda adalah fitur C++ yang canggih dan memungkinkan kamu membuat fungsi anonim kecil tepat di tempat kamu membutuhkannya. Anggap ekspresi ini sebagai fungsi mini yang bisa kamu definisikan dan gunakan tanpa harus menulis deklarasi fungsi terpisah.

Sintaks dasar untuk ekspresi lambda mengikuti pola ini: [](){}. Tanda kurung siku [] disebut klausa capture, tanda kurung () berisi parameter (seperti fungsi biasa), dan tanda kurung kurawal {} berisi badan fungsi.


Klausa capture mengatur variabel mana dari ruang lingkup sekitarnya yang dapat digunakan lambda. Bentuk yang paling umum adalah:

[=]: menangkap semua variabel lokal berdasarkan nilai (lambda mendapatkan salinannya sendiri)
[&]: menangkap semua variabel lokal berdasarkan referensi (lambda mengakses variabel aslinya)
[]: tidak menangkap apa pun (lambda tidak dapat menggunakan variabel dari luar)

Berikut cara membuat dan memanggil lambda sederhana:

auto myLambda = []() {
    std::cout << "Hello from Lambda!" << std::endl;
};

myLambda();  // Panggil fungsi lambda

Kamu juga bisa mendefinisikan dan menjalankan lambda secara langsung tanpa menyimpannya dalam variabel:

[]() {
    std::cout << "Immediate execution!" << std::endl;
}();

Ekspresi lambda sangat berguna untuk fungsi singkat yang hanya digunakan sekali dan tidak ingin kamu definisikan secara terpisah. Ekspresi ini membuat kodemu lebih ringkas dan menjaga logika yang berkaitan tetap berdekatan.

challenge icon

Tantangan

Mudah

Buat program yang menunjukkan sintaks dasar dan cara menjalankan ekspresi lambda. Tantangan ini akan menguji pemahamanmu tentang cara mendefinisikan dan memanggil fungsi lambda sederhana tanpa parameter.

Programmu harus:

  1. Membuat ekspresi lambda yang mencetak Hello from Lambda!
  2. Menyimpan lambda ini dalam variabel menggunakan kata kunci auto
  3. Memanggil fungsi lambda untuk menjalankannya
  4. Membuat ekspresi lambda kedua yang mencetak Lambda executed successfully!
  5. Langsung menjalankan lambda kedua ini tanpa menyimpannya dalam variabel

Gunakan format output berikut secara persis:

Hello from Lambda!
Lambda executed successfully!

Ingat bahwa ekspresi lambda menggunakan sintaks [](){}. Tanda kurung siku [] adalah klausa penangkapan, tanda kurung () berisi parameter (kosong untuk tantangan ini), dan kurung kurawal {} berisi isi fungsi. Kamu dapat menyimpan lambda dalam variabel menggunakan auto variableName = [](){...};, lalu memanggilnya dengan variableName();. Untuk menjalankannya langsung, kamu dapat menggunakan sintaks [](){...}(); yang mendefinisikan dan memanggil lambda dalam satu pernyataan.

Coba sendiri

#include <iostream>
using namespace std;

int main() {
    // TODO: Tulis kodemu di bawah ini
    // Buat ekspresi lambda yang mencetak "Hello from Lambda!"
    // Simpan dalam variabel menggunakan kata kunci auto
    
    // Panggil fungsi lambda
    
    // Buat lambda kedua yang mencetak "Lambda executed successfully!"
    // Jalankan langsung tanpa menyimpannya dalam variabel
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online