Introduction to lambdas in c++ in hindi
सी++11 प्रोग्रामिंग में पेश किया गया लैम्बडा एक्सप्रेशन एक पॉवरफुल प्रोग्रामिंग ऐट्रिब्यूट्स या फीचर्स है. जो सी++ प्रोग्रामर को डायरेक्ट अपने प्रोग्राम कोड के अंदर अनाम फ़ंक्शन या फ़ंक्शन ऑब्जेक्ट को डिफाइन परमिशन प्रोवाइड करता है। आपके मौजूदा प्रोग्राम में लैम्ब्डा एक्सप्रेशन आपको छोटे, अस्थायी फ़ंक्शन या प्रोग्राम ऑपरेशन को डिफाइन करने में सहायता करते हैं, कई बार सी++ प्रोग्रामर को अक्सर प्रोग्राम एल्गोरिदम, कॉलबैक या अन्य प्रोग्रामिंग कंडीशंस उपयोग के लिए जहाँ एक स्माल लैम्ब्डा फंक्शन एक्सप्रेशन की जरूरत पड़ती है। वर्त्तमान समय में लैम्बडा एक्सप्रेशन मॉडर्न C++ प्रोग्रामिंग के लिए फंडामेंटल ऐट्रिब्यूट्स हैं, जो सी++ प्रोग्रामर को एडवांस्ड एक्सप्रेशन बेस्ड, क्लियर और रीडेबल प्रोग्राम सोर्स कोड को डेवलप करने में सक्षम करते हैं।

So let’s get to know lambda function expressions better in C++11 programming.
Basic syntax of lambda in C++11 programming.
[ capture ] ( parameter/argument_list ) -> lambda return_type { function_body }
- Lambda capture clause [captures] – लैम्ब्डा कैप्चर क्लॉज़ यह इंडीकेट करता है कि मौजूदा प्रोग्राम में नियरेस्ट स्कोप से कौन से वेरिएबल को लैम्बडा एक्सप्रेशन द्वारा कैप्चर करना है। इस प्रोसेस में मौजूदा प्रोग्राम में लोकल वेरिएबल भी मौजूद हो सकते हैं, जहा सी++11 प्रोग्रामर इन लैम्ब्डा एक्सप्रेशन को वैल्यू और प्रोग्राम रेफ़्रेन्स के माध्यम से कैप्चर कर सकते हैं।
- Lambda parameter list (parameter_list ) – लेम्ब्डा पैरामीटर लिस्ट वह लिस्ट है, जिसे लैम्बडा एक्सप्रेशन इनपुट आर्गुमेंट या पैरामीटर वेरिएबल के रूप में प्रोसेस करता है। यहाँ यदि कोई लैम्ब्डा एक्सप्रेशन पैरामीटर आर्गुमेंट को डिस्प्ले नहीं करता है, तो यह लैम्ब्डा एक्सप्रेशन एम्प्टी एक्सप्रेशन हो सकता है।
- Lambda return type -> return_type (optional) – यह लैम्ब्डा एक्सप्रेशन के रिटर्न डाटा टाइप को इंडीकेट करता है। यदि लैम्ब्डा एक्सप्रेशन एम्प्टी होता है, तो सी++11 कंपाइलर लैम्ब्डा रिटर्न टाइप एक्सप्रेशन को अपने आप फाइंड करेगा।
- Lambda function body {function_body} – इसमें लैम्ब्डा एक्सप्रेशन की बॉडी कोड होता है, जिसमें मैन लैम्ब्डा फ़ंक्शन एक्सप्रेशन लॉजिक या कोड को क्रिएट किया जाता है।
Examples of Simple Lambda in C++ Programming.
Lambda Expression Example without Parameters.
#include <iostream>
int main() {
// create basic lambda expression use to prints “welcome to vanhelpsu!”
auto vcanhelpsu = []() {
std::cout << “\n welcome to vanhelpsu! ” << std::endl;
};
vcanhelpsu (); // it Call the above vcanhelpsu() lambda function
return 0;
}
In this above example.
ऊपर इस प्रोग्राम में लैम्ब्डा एक्सप्रेशन []() {std::cout << “welcome to vanhelpsu!”; } प्रोग्रामर से कोई पैरामीटर वेरिएबल वैल्यू को इनपुट नहीं करता है, और जब प्रोग्राम एक्सेक्युशन के समय vcanhelpsu फंक्शन को कॉल किया जाता है, तो यह कंसोल पर बस “welcome to vanhelpsu!” टेक्स्ट मैसेज को कंसोल स्क्रीन में प्रिंट करता है।
Lambda Example with Parameters in C++.
#include <iostream>
int main() {
// hre count Lambda funtion that takes two integers parameter p & q and returns their count total
auto count = [](int p, int q) -> int {
return p + q;
};
std::cout << “\n Total is – ” << count(1, 2) << std::endl; // the total count is = 3
return 0;
}
Here in this lambda example above.
यहाँ ऊपर इस लैम्ब्डा एक्सप्रेशन में [](int p, int q) -> int {return p + q; } दो इन्टिजर पैरामीटर वेरिएबल को इनपुट के रूप में एक्सेप्ट करता है, और इन दोनों वेरिएबल के टोटल वैल्यू को रिटर्न करता है।
इस प्रोग्राम में लैम्ब्डा फंक्शन रिटर्न टाइप -> int डाटा टाइप के रूप में इंडीकेट किया गया है।
Capturing a lambda variable in C++ programming.
सी++ प्रोग्राम में लैम्ब्डा एक्सप्रेशन का एक स्पेशल ऐट्रिब्यूट्स कैप्चर क्लॉज़ [] है। जहा कैप्चर क्लॉज़ मौजूदा प्रोग्राम में लैम्ब्डा को आस-पास के स्कोप से पैरामीटर वैरिएबल को कैप्चर करता है, ताकि जरूरत के अनुसार उन्हें लैम्ब्डा बॉडी के अंदर कही भी उपयोग किया जा सके।
Lambda variable capture example by value.
#include <iostream>
int main() {
int p = 1;
int q = 2;
// here Lambda expression captures p and q parameter value
auto total = [p, q]() {
return p + q; // here p and q used to captured by value
};
std::cout << “\n the total is – ” << total() << std::endl; // the total is -3
return 0;
}
Here in this lambda example.
इस लैम्ब्डा प्रोग्राम एक्सप्रेशन में p और q को वैल्यू [p, q] द्वारा इंडीकेट किया गया है, जो प्रोग्राम में इनपुट वेरिएबल को कैप्चर करता है।
जहा p और q लैम्ब्डा पैरामीटर वैल्यू लैम्ब्डा में कॉपी किए जाते हैं, जिसका अर्थ है कि लैम्ब्डा एक्सप्रेशन के बाहर p और q पैरामीटर वेरिएबल में किए गए मॉडिफिकेशन लैम्ब्डा में उपयोग वैल्यू को इम्पैक्ट नहीं करते हैं।