সি ++ এ ল্যাম্বদা এক্সপ্রেশন

Lambda Expressions C



ল্যাম্বদা এক্সপ্রেশন কেন?

নিম্নলিখিত বিবৃতি বিবেচনা করুন:

intmyInt= 52;

এখানে, myInt একটি শনাক্তকারী, একটি মান। 52 একটি আক্ষরিক, একটি মূল্য। আজ, একটি ফাংশনকে বিশেষভাবে কোড করা এবং 52 এর অবস্থানে রাখা সম্ভব। এই ধরনের ফাংশনকে ল্যাম্বডা এক্সপ্রেশন বলা হয়। নিম্নলিখিত সংক্ষিপ্ত প্রোগ্রামটিও বিবেচনা করুন:







#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intfn(intমাধ্যম)

{

intউত্তর=মাধ্যম+ 3;

প্রত্যাবর্তনউত্তর;

}


intপ্রধান()

{

fn(5);



প্রত্যাবর্তন 0;

}

আজ, একটি ফাংশনকে বিশেষভাবে কোড করা এবং ফাংশন কল, fn (5) এর 5 টি যুক্তির অবস্থানে রাখা সম্ভব। এই ধরনের একটি ফাংশন একটি lambda এক্সপ্রেশন বলা হয়। সেই অবস্থানে ল্যাম্বডা এক্সপ্রেশন (ফাংশন) হল একটি মূল্য।



স্ট্রিং আক্ষরিক ব্যতীত যেকোনো আক্ষরিক একটি মূল্য। ল্যাম্বডা এক্সপ্রেশন হল একটি বিশেষ ফাংশন ডিজাইন যা কোডে আক্ষরিক হিসেবে ফিট হবে। এটি একটি বেনামী (নামবিহীন) ফাংশন। এই নিবন্ধটি নতুন C ++ প্রাথমিক অভিব্যক্তি ব্যাখ্যা করে, যাকে ল্যাম্বদা এক্সপ্রেশন বলা হয়। এই নিবন্ধটি বোঝার জন্য C ++ এ প্রাথমিক জ্ঞান প্রয়োজন।



নিবন্ধ বিষয়বস্তু

ল্যাম্বদা এক্সপ্রেশনের চিত্রণ

নিম্নলিখিত প্রোগ্রামে, একটি ফাংশন, যা একটি ল্যাম্বদা এক্সপ্রেশন, একটি ভেরিয়েবলের জন্য নির্ধারিত হয়:





#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

স্বয়ংক্রিয়fn= [](intথামুন)

{

intউত্তর=থামুন+ 3;

প্রত্যাবর্তনউত্তর;

};


intপ্রধান()

{

স্বয়ংক্রিয়variab=fn(2);

খরচ <<variab<< 'n';


প্রত্যাবর্তন 0;

}

আউটপুট হল:

5

প্রধান () ফাংশনের বাইরে, পরিবর্তনশীল, fn আছে। এর ধরন অটো। এই অবস্থায় অটো মানে হল যে প্রকৃত টাইপ, যেমন int বা float, অ্যাসাইনমেন্ট অপারেটর (=) এর সঠিক অপারেন্ড দ্বারা নির্ধারিত হয়। অ্যাসাইনমেন্ট অপারেটরের ডানদিকে একটি ল্যাম্বডা এক্সপ্রেশন। ল্যাম্বডা এক্সপ্রেশন হল পূর্ববর্তী রিটার্ন টাইপ ছাড়া একটি ফাংশন। বর্গাকার বন্ধনীগুলির ব্যবহার এবং অবস্থান লক্ষ্য করুন, []। ফাংশন 5, একটি int প্রদান করে, যা fn এর ধরন নির্ধারণ করবে।



প্রধান () ফাংশনে, বিবৃতি রয়েছে:

স্বয়ংক্রিয়variab=fn(2);

এর মানে হল, fn এর বাইরে main (), একটি ফাংশনের শনাক্তকারী হিসাবে শেষ হয়। এর অন্তর্নিহিত পরামিতিগুলি হল ল্যাম্বদা এক্সপ্রেশন। Variab এর ধরন স্বয়ংক্রিয়।

লক্ষ্য করুন যে ল্যাম্বডা এক্সপ্রেশন একটি সেমিকোলন দিয়ে শেষ হয়, যেমন ক্লাস বা স্ট্রাক্ট সংজ্ঞা, সেমিকোলন দিয়ে শেষ হয়।

নিম্নলিখিত প্রোগ্রামে, একটি ফাংশন, যা একটি ল্যাম্বদা এক্সপ্রেশন যা 5 এর মান ফেরত দেয়, অন্য ফাংশনের একটি যুক্তি:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

অকার্যকরঅন্য(intনং 1,int (*পিটিআর)(int))

{

intনং 2= (*পিটিআর)(2);

খরচ <<নং 1<< '' <<নং 2<< 'n';

}


intপ্রধান()

{

অন্য(4,[](intথামুন)

{

intউত্তর=থামুন+ 3;

প্রত্যাবর্তনউত্তর;

});


প্রত্যাবর্তন 0;
}

আউটপুট হল:

চার পাঁচ

এখানে দুটি ফাংশন আছে, ল্যাম্বডা এক্সপ্রেশন এবং অন্যটি () ফাংশন। ল্যাম্বডা এক্সপ্রেশন হল otherfn () এর দ্বিতীয় যুক্তি, যাকে প্রধান () বলা হয়। মনে রাখবেন যে ল্যাম্বদা ফাংশন (এক্সপ্রেশন) এই কলটিতে একটি সেমিকোলন দিয়ে শেষ হয় না, কারণ, এখানে, এটি একটি যুক্তি (একা একা ফাংশন নয়)।

ল্যাবডা ফাংশন প্যারামিটারটি অন্যফএন () ফাংশনের সংজ্ঞায় একটি ফাংশনের পয়েন্টার। পয়েন্টারটির নাম আছে, ptr। ল্যাম্বডা ফাংশনকে কল করার জন্য ptr নামটি অন্যএফএন () সংজ্ঞায় ব্যবহৃত হয়।

বিবৃতি,

intনং 2= (*পিটিআর)(2);

অন্যএফএন () সংজ্ঞায়, এটি ল্যাম্বদা ফাংশনকে 2 এর একটি যুক্তি দিয়ে কল করে।

উপরের প্রোগ্রামটিও দেখায় কিভাবে ল্যাম্বদা ফাংশনটি C ++ কলব্যাক ফাংশন স্কিমে ব্যবহার করা যায়।

ল্যাম্বদা এক্সপ্রেশনের অংশ

একটি সাধারণ ল্যাম্বদা ফাংশনের অংশগুলি নিম্নরূপ:

[] () {}
  • [] হল ক্যাপচার ক্লজ। এতে আইটেম থাকতে পারে।
  • () প্যারামিটার তালিকার জন্য।
  • {} ফাংশন বডির জন্য। যদি ফাংশনটি একা দাঁড়িয়ে থাকে, তবে এটি একটি সেমিকোলন দিয়ে শেষ হওয়া উচিত।

ক্যাপচার

ল্যাম্বডা ফাংশনের সংজ্ঞা একটি ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে বা ভিন্ন ফাংশন কলের যুক্তি হিসেবে ব্যবহার করা যেতে পারে। যেমন একটি ফাংশন কল জন্য সংজ্ঞা একটি প্যারামিটার হিসাবে থাকা উচিত, একটি ফাংশন একটি পয়েন্টার, lambda ফাংশন সংজ্ঞা অনুরূপ।

ল্যাম্বদা ফাংশন সংজ্ঞা স্বাভাবিক ফাংশন সংজ্ঞা থেকে ভিন্ন। এটি বিশ্বব্যাপী একটি পরিবর্তনশীলকে বরাদ্দ করা যেতে পারে; এই ফাংশন-নির্ধারিত-থেকে-পরিবর্তনশীল এছাড়াও অন্য ফাংশনের ভিতরে কোড করা যেতে পারে। যখন একটি গ্লোবাল স্কোপ ভেরিয়েবলের জন্য নির্ধারিত হয়, তখন এর বডি গ্লোবাল স্কোপে অন্যান্য ভেরিয়েবল দেখতে পারে। যখন একটি স্বাভাবিক ফাংশন সংজ্ঞা ভিতরে একটি পরিবর্তনশীল নিযুক্ত করা হয়, তার শরীর ফাংশন সুযোগ অন্যান্য ভেরিয়েবল দেখতে পারেন শুধুমাত্র ক্যাপচার ক্লজ সাহায্যে, []।

ক্যাপচার ক্লজ [], যা ল্যাম্বডা-প্রবর্তক নামেও পরিচিত, ভেরিয়েবলকে আশেপাশের (ফাংশন) সুযোগ থেকে ল্যাম্বডা এক্সপ্রেশনের ফাংশন বডিতে পাঠানোর অনুমতি দেয়। ল্যাম্বডা এক্সপ্রেশনের ফাংশন বডি ভেরিয়েবল ক্যাপচার করার জন্য বলা হয় যখন এটি বস্তু গ্রহণ করে। ক্যাপচার ক্লজ [] ব্যতীত, একটি ভেরিয়েবল আশেপাশের সুযোগ থেকে ল্যাম্বডা এক্সপ্রেশনের ফাংশন বডিতে পাঠানো যাবে না। নিম্নলিখিত প্রোগ্রামটি প্রধান () ফাংশন স্কোপ সহ আশেপাশের স্কোপ হিসাবে এটি ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5;


স্বয়ংক্রিয়fn= [আইডি]()

{

খরচ <<আইডি<< 'n';

};

fn();


প্রত্যাবর্তন 0;

}

আউটপুট হল 5 । নাম, আইডি, ভিতরে [] ছাড়া, ল্যাম্বডা এক্সপ্রেশনটি প্রধান () ফাংশনের সুযোগের পরিবর্তনশীল আইডি দেখতে পেত না।

রেফারেন্স দ্বারা ক্যাপচার করা

ক্যাপচার ক্লজের উপরের উদাহরণ ব্যবহার মান দ্বারা ক্যাপচার করা হচ্ছে (নিচে বিস্তারিত দেখুন)। রেফারেন্স দ্বারা ক্যাপচার করার সময়, ভেরিয়েবলের অবস্থান (স্টোরেজ), যেমন, উপরে আইডি, আশেপাশের সুযোগ, ল্যাম্বদা ফাংশন বডির ভিতরে উপলব্ধ করা হয়। সুতরাং, ল্যাম্বদা ফাংশন বডির ভিতরে ভেরিয়েবলের মান পরিবর্তন করলে আশেপাশের সুযোগে একই ভেরিয়েবলের মান পরিবর্তন হবে। ক্যাপচার ক্লজে পুনরাবৃত্তি করা প্রতিটি ভেরিয়েবলের আগে এটি অর্জনের জন্য অ্যাম্পারস্যান্ড (&)। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি';

স্বয়ংক্রিয়fn= [&আইডি,&ফুট,&সিএইচ]()

{

আইডি= 6;ফুট= 3.4;সিএইচ= 'খ';

};

fn();

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< 'n';

প্রত্যাবর্তন 0;

}

আউটপুট হল:

6, 3.4, খ

নিশ্চিত করে যে ল্যাম্বডা এক্সপ্রেশনের ফাংশন বডির ভিতরের ভেরিয়েবল নামগুলি ল্যাম্বডা এক্সপ্রেশনের বাইরে একই ভেরিয়েবলের জন্য।

মান দ্বারা ক্যাপচার করা

মান দ্বারা ক্যাপচার করার সময়, ভেরিয়েবলের অবস্থান, আশেপাশের সুযোগের একটি অনুলিপি ল্যাম্বদা ফাংশন বডির ভিতরে উপলব্ধ করা হয়। যদিও ল্যাম্বডা ফাংশন বডির ভিতরের ভেরিয়েবল একটি কপি, তবে এর মান এখন পর্যন্ত শরীরের ভিতরে পরিবর্তন করা যাবে না। মান দ্বারা ক্যাপচারিং অর্জন করতে, ক্যাপচার ক্লজে পুনরাবৃত্তি করা প্রতিটি ভেরিয়েবল কোন কিছুর আগে থাকে না। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি';

স্বয়ংক্রিয়fn= [id, ft, ch]()

{

// আইডি = 6; ফুট = 3.4; ch = 'B';

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< 'n';

};

fn();

আইডি= 6;ফুট= 3.4;সিএইচ= 'খ';

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< 'n';

প্রত্যাবর্তন 0;

}

আউটপুট হল:

5, 2.3, এ

6, 3.4, খ

যদি মন্তব্য সূচক সরানো হয়, প্রোগ্রাম কম্পাইল করা হবে না। কম্পাইলার একটি ত্রুটি বার্তা জারি করবে যে ল্যাম্বডা এক্সপ্রেশনের ফাংশন বডির সংজ্ঞার ভিতরের ভেরিয়েবল পরিবর্তন করা যাবে না। যদিও ভেরিয়েবলগুলি ল্যাম্বদা ফাংশনের ভিতরে পরিবর্তন করা যায় না, তবে উপরের প্রোগ্রামটির আউটপুট দেখায়, সেগুলি ল্যাম্বদা ফাংশনের বাইরে পরিবর্তন করা যেতে পারে।

মিক্সিং ক্যাপচার

রেফারেন্স দ্বারা ক্যাপচার এবং মান দ্বারা ক্যাপচার মিশ্রিত করা যেতে পারে, যেমন নিম্নলিখিত প্রোগ্রাম দেখায়:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি'; বুলbl= সত্য;


স্বয়ংক্রিয়fn= [আইডি, ফুট,&সিএইচ,&bl]()

{

সিএইচ= 'খ';bl= মিথ্যা;

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< ',' <<bl<< 'n';

};

fn();


প্রত্যাবর্তন 0;

}

আউটপুট হল:

5, 2.3, বি, 0

যখন সব ধরা হয়, রেফারেন্স দ্বারা হয়:

যদি সমস্ত ভেরিয়েবল ক্যাপচার করা হয় রেফারেন্স দ্বারা ক্যাপচার করা হয়, তাহলে ক্যাপচার ক্লজে শুধু একটি এবং যথেষ্ট হবে। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি'; বুলbl= সত্য;


স্বয়ংক্রিয়fn= [&]()

{

আইডি= 6;ফুট= 3.4;সিএইচ= 'খ';bl= মিথ্যা;

};

fn();

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< ',' <<bl<< 'n';


প্রত্যাবর্তন 0;

}

আউটপুট হল:

6, 3.4, বি, 0

যদি কিছু ভেরিয়েবল রেফারেন্স দ্বারা এবং অন্যরা মান দ্বারা ধরা হয়, তাহলে একটি & সব রেফারেন্সের প্রতিনিধিত্ব করবে, এবং বাকিগুলি প্রতিটি কিছু দ্বারা পূর্বে হবে না, যেমন নিম্নলিখিত প্রোগ্রামটি দেখায়:

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি'; বুলbl= সত্য;


স্বয়ংক্রিয়fn= [&, আইডি, ফুট]()

{

সিএইচ= 'খ';bl= মিথ্যা;

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< ',' <<bl<< 'n';

};

fn();


প্রত্যাবর্তন 0;

}

আউটপুট হল:

5, 2.3, বি, 0

লক্ষ্য করুন যে & একা (যেমন, এবং একটি শনাক্তকারী দ্বারা অনুসরণ করা হয় না) ক্যাপচার ক্লজের প্রথম অক্ষর হতে হবে।

যখন সব ক্যাপচার, মান দ্বারা হয়:

যদি সব ভেরিয়েবল ক্যাপচার করা হয় মান দ্বারা ক্যাপচার করা হয়, তাহলে ক্যাপচার ক্লজে শুধু একটি = যথেষ্ট হবে। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()
{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি'; বুলbl= সত্য;


স্বয়ংক্রিয়fn= [=]()

{

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< ',' <<bl<< 'n';

};

fn();


প্রত্যাবর্তন 0;


}

আউটপুট হল:

5, 2.3, এ, 1

বিঃদ্রঃ : = এখন পর্যন্ত কেবল পঠনযোগ্য।

যদি কিছু ভেরিয়েবল মান দ্বারা এবং অন্যগুলি রেফারেন্স দ্বারা ধরা হয়, তাহলে এক = সমস্ত পঠনযোগ্য অনুলিপি করা ভেরিয়েবলকে প্রতিনিধিত্ব করবে, এবং বাকিগুলি প্রত্যেকটি থাকবে এবং, যেমন নিম্নলিখিত প্রোগ্রামটি দেখায়:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

intপ্রধান()

{

intআইডি= 5; ভাসাফুট= 2.3; গৃহস্থালিসিএইচ= 'প্রতি'; বুলbl= সত্য;


স্বয়ংক্রিয়fn= [=,&সিএইচ,&bl]()

{

সিএইচ= 'খ';bl= মিথ্যা;

খরচ <<আইডি<< ',' <<ফুট<< ',' <<সিএইচ<< ',' <<bl<< 'n';

};

fn();


প্রত্যাবর্তন 0;

}

আউটপুট হল:

5, 2.3, বি, 0

লক্ষ্য করুন যে = একা ক্যাপচার ক্লজের প্রথম অক্ষর হতে হবে।

ল্যাম্বদা এক্সপ্রেশন সহ ক্লাসিক্যাল কলব্যাক ফাংশন স্কিম

নিম্নোক্ত প্রোগ্রামটি দেখায় কিভাবে ল্যাম্বদা এক্সপ্রেশন দিয়ে একটি ক্লাসিক্যাল কলব্যাক ফাংশন স্কিম করা যেতে পারে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

গৃহস্থালি *আউটপুট;


স্বয়ংক্রিয়সিবিএ= [](গৃহস্থালিবাইরে[])

{

আউটপুট=বাইরে;

};



অকার্যকরmainFunc(গৃহস্থালিইনপুট[],অকার্যকর (*জন্য)(গৃহস্থালি[]))

{

(*জন্য)(ইনপুট);

খরচ<<'প্রধান কাজের জন্য'<<'n';

}


অকার্যকরfn()

{

খরচ<<'এখন'<<'n';

}


intপ্রধান()

{

গৃহস্থালিইনপুট[] = 'কলব্যাক ফাংশনের জন্য';

mainFunc(ইনপুট, সিবিএ);

fn();

খরচ<<আউটপুট<<'n';



প্রত্যাবর্তন 0;

}

আউটপুট হল:

প্রধান কাজের জন্য

এখন

কলব্যাক ফাংশনের জন্য

মনে রাখবেন যে যখন একটি ল্যাম্বডা এক্সপ্রেশন সংজ্ঞা বৈশ্বিক সুযোগের একটি ভেরিয়েবলের জন্য নির্ধারিত হয়, তখন তার ফাংশন ক্যাপচার ক্লজ ব্যবহার না করেই বৈশ্বিক ভেরিয়েবল দেখতে পারে।

পিছনে-রিটার্ন-টাইপ

ল্যাম্বদা এক্সপ্রেশনের রিটার্ন টাইপ অটো, মানে কম্পাইলার রিটার্ন এক্সপ্রেশন (যদি উপস্থিত থাকে) থেকে রিটার্ন টাইপ নির্ধারণ করে। যদি প্রোগ্রামার সত্যিই রিটার্নের ধরন নির্দেশ করতে চায়, তাহলে তিনি নিচের প্রোগ্রামের মতই করবেন:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

স্বয়ংক্রিয়fn= [](intথামুন) -> int

{

intউত্তর=থামুন+ 3;

প্রত্যাবর্তনউত্তর;

};


intপ্রধান()

{

স্বয়ংক্রিয়variab=fn(2);

খরচ <<variab<< 'n';


প্রত্যাবর্তন 0;

}

আউটপুট হল 5. প্যারামিটার তালিকার পরে, তীর অপারেটর টাইপ করা হয়। এটি রিটার্ন টাইপ (এই ক্ষেত্রে int) দ্বারা অনুসরণ করা হয়।

বন্ধ

নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

কাঠামোক্লা

{

intআইডি= 5;

গৃহস্থালিসিএইচ= 'প্রতি';

}obj1, obj2;

এখানে, ক্লা স্ট্রাক্ট ক্লাসের নাম। Obj1 এবং obj2 দুটি বস্তু যা স্ট্রাক্ট ক্লাস থেকে তাত্ক্ষণিক হবে। ল্যাম্বডা এক্সপ্রেশন বাস্তবায়নে অনুরূপ। ল্যাম্বদা ফাংশন সংজ্ঞা হল এক ধরনের শ্রেণী। যখন ল্যাম্বডা ফাংশন বলা হয় (আহ্বান করা হয়), একটি বস্তু তার সংজ্ঞা থেকে তাত্ক্ষণিকভাবে সরানো হয়। এই বস্তুকে বন্ধ বলা হয়। ল্যাম্বডা যে কাজটি করবে বলে আশা করা হচ্ছে সেটিই বন্ধ।

যাইহোক, উপরের কাঠামোর মত ল্যাম্বডা এক্সপ্রেশন কোডিং করলে obj1 এবং obj2 সংশ্লিষ্ট প্যারামিটার আর্গুমেন্ট দ্বারা প্রতিস্থাপিত হবে। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত

ব্যবহার নামস্থানঘন্টার;

স্বয়ংক্রিয়fn= [](intপরম 1,intparam2)

{

intউত্তর=param1+param2;

প্রত্যাবর্তনউত্তর;

} (2,3);


intপ্রধান()

{

স্বয়ংক্রিয়কোথায়=fn;

খরচ <<কোথায়<< 'n';


প্রত্যাবর্তন 0;

}

আউটপুট হল 5. আর্গুমেন্টগুলি বন্ধনীতে 2 এবং 3। উল্লেখ্য যে ল্যাম্বডা এক্সপ্রেশন ফাংশন কল, এফএন, কোন যুক্তি নেয় না কারণ ল্যাম্বদা ফাংশন সংজ্ঞা শেষে যুক্তিগুলি ইতিমধ্যে কোডেড করা হয়েছে।

উপসংহার

ল্যাম্বডা এক্সপ্রেশন একটি বেনামী ফাংশন। এটি দুটি অংশে: ক্লাস এবং অবজেক্ট। এর সংজ্ঞা হল এক ধরনের শ্রেণী। যখন অভিব্যক্তি বলা হয়, সংজ্ঞা থেকে একটি বস্তু গঠিত হয়। এই বস্তুকে বন্ধ বলা হয়। ল্যাম্বডা যে কাজটি করবে বলে আশা করা হচ্ছে সেটিই বন্ধ।

ল্যাম্বদা এক্সপ্রেশন বাইরের ফাংশন স্কোপ থেকে একটি ভেরিয়েবল পাওয়ার জন্য, এটির ফাংশন বডিতে একটি খালি ক্যাপচার ক্লজ প্রয়োজন।