কম্পিউটার টিউটোরিয়াল

C++11-এ ল্যাম্বডা এক্সপ্রেশন (Lambda Expression) কী?

C++11-এ অ্যানোনিমাস (anonymous) ফাংশন তৈরি করার জন্য ল্যাম্বডা এক্সপ্রেশন চালু করা হয়েছে। STL অ্যালগরিদমের সাথে ব্যবহার করার জন্য খুব সুবিধাজনক।

উদাহরণ

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> myvector = {1, 2, 3};
    for_each(myvector.begin(), myvector.end(), [](int x) {
        cout << x * x << endl;
    });
}

আউটপুট

1
4
9

সিনট্যাক্স

[ captures ] ( params ) mutable(optional) noexcept(optional) -> return_type { body }
  • []: ক্যাপচার লিস্ট (লোকাল ভেরিয়েবল ল্যাম্বডার ভিতরে আনা)
  • (): প্যারামিটার লিস্ট
  • -> return_type: রিটার্ন টাইপ (অপশনাল, সাধারণত ডেডিউস হয়)
  • {}: ফাংশন বডি

ক্যাপচার উদাহরণ

int factor = 10;
auto lambda = [factor](int x) { return x * factor; }; // value capture
auto lambda2 = [&factor](int x) { return x * factor++; }; // reference capture
auto lambda3 = [=](int x) { return x * factor; }; // সব লোকাল value capture
auto lambda4 = [&](int x) { return x * factor; }; // সব লোকাল reference capture

ল্যাম্বডা ফাংশনাল প্রোগ্রামিং স্টাইল এবং STL অ্যালগরিদমের সাথে খুব শক্তিশালী।

  1. C#-এ মেথড ওভারলোডিং কী?

  2. C#-এ ওভারলোডিং (Overloading) কী?

  3. C#-এ এনুমেরেশন (Enumeration) কী?

  4. পাইথনে ল্যাম্বডা বাইনডিং (Lambda Binding) কী?