"लैम्ब्डा" कोड क्या है?


17

मैंने हाल ही में लोगों को "लैम्ब्डा" कोड के बारे में बात करते सुना है। मैंने इस वाक्यांश के बारे में पहले कभी नहीं सुना। इसका क्या मतलब है?


यह किया। बहुत बार। मैंने भी इसे कई बार आजमाया - लेकिन बिना किसी सफलता के दुख की बात है। शायद आपकी किस्मत ज्यादा होगी? उन लोगों के लिए धन्यवाद जो repsonded।
ओलिवर मोरन

10
@ ओलिवर, यहां एक प्रश्न पूछने का हिस्सा यह भी दिखाना है कि आपने उस प्रश्न का उत्तर देने के लिए क्या किया है ताकि लोग आपके द्वारा किए गए समान कामों की कोशिश नहीं कर रहे हैं और फंस गए हैं। यह निर्दिष्ट करके कि विकिपीडिया या Google लिंक में आपने पाया कि आप भ्रमित थे, यह सुनिश्चित करता है कि आपके प्रश्न का बेहतर उत्तर दिया जाता है क्योंकि सामान्य स्तर पर उत्तर वह नहीं हो सकता है जो आप चाहते थे क्योंकि यह केवल संदर्भित है जो आपको पहले नहीं मिला था। बस कोशिश करें कि कोई और क्या पोस्ट कर रहा है और देखें कि क्या होता है। आप क्या परिणाम पर आश्चर्यचकित हो सकते हैं।
जेबी किंग

7
मुझे लगता है कि इसमें से एक रैप बनाया जा सकता है - "मेरा कोड इतना लम्बा"। लेकिन मैं इसे किसी भी चीज के लायक नहीं बना सकता। :-)
पॉल नाथन

1
@ जेबी किंग + जेबी किंग - आपकी विनम्र टिप्पणियों के लिए धन्यवाद। व्यापक रूप में, आप दोनों जो कहते हैं वह समझदार है। हालाँकि, क्वेरी के आधार पर, कभी-कभी एक संक्षिप्त और खुला प्रश्न उन उत्तरों के प्रकारों को जानने में बेहतर होता है जो अन्यत्र नहीं पाए जाते हैं। मेरे प्रश्न का ठीक उसी प्रकार से उत्तर मिला जिस तरह के उत्तरों की मुझे तलाश थी। मैंने इसे बहाना बनाया ताकि ऐसा हो। मुझे आशा है कि नीचे दिए गए उत्तर उसी प्रश्न के साथ दूसरों के लिए उपयोगी हैं। यह विडंबना है कि मैं एक ही समय में जवाब से संतुष्ट हूं कि कुछ प्रश्न से निराश हैं।
ओलिवर मोरन

2
@ पाओल नाथन - आप कोड हैं इसलिए लंबोदर आपने स्पष्ट रूप से किसी भी मानक के लिए टा काम की योजना नहीं बनाई है; यह एक सैंडर की तुलना में मोटा है!
ग्लेनट्रॉन

जवाबों:


20

लैम्ब्डा अभिव्यक्ति या तो एक अमूर्तता है (कभी-कभी अनाम फ़ंक्शन के रूप में संदर्भित), एक एप्लिकेशन या एक चर (अधिकांश भाषाएं भी इस सूची में स्थिरांक जोड़ती हैं)। लैम्ब्डा की शर्तें जरूरी कार्य नहीं हैं, और जरूरी नहीं कि मापदंडों के रूप में पारित किया जाए, हालांकि यह एक आम बात है।

C # में लंबोदर अभिव्यक्ति का एक सामान्य उदाहरण

उदाहरण के लिए:

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);

उत्पादन होगा: 2

इस कोड में, मैं FindAll.NET Listऑब्जेक्ट के फ़ंक्शन के लिए एक लैम्ब्डा निर्माण पास करता हूं ।

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

इस कॉल में लैम्ब्डा एक साधारण समीकरण को निष्पादित करता है और एक बूलियन देता है, FindAllजो बताता है कि क्या करना है।


2
यह बिल्कुल सच नहीं है। लैम्ब्डा अभिव्यक्ति या तो एक अमूर्त है (जरूरी नहीं कि छोटा हो ), एक आवेदन या एक चर (अधिकांश भाषाएं भी इस सूची में स्थिरांक जोड़ती हैं)। लम्बे शब्द आवश्यक रूप से कार्य नहीं हैं, और आवश्यक रूप से पैरामीटर के रूप में पारित नहीं हुए हैं।
एसके-तर्क

आप ठीक कह रहे हैं, मैं स्पष्टता के लिए इसका जवाब दूंगा।
टिमोथी ग्रोट

3
मुझे एक लंबोदर अभिव्यक्ति का एक उदाहरण दें जो एक फ़ंक्शन नहीं है, कृपया।
इंगो

1
@ इंगो, यह लैम्ब्डा कैलकुलस की शब्दावली है, निश्चित रूप से। en.wikipedia.org/wiki/Lambda_calculus#Lambda_terms
लॉजिक

1
@ एसके-लॉजिक मैं इसे अलग तरह से देखना पसंद करता हूं। हास्केल और C # जैसी भाषाओं से कार्यों को लेट (rec) निर्माण में या "सुपर-कॉम्बिनेटर" (यानी शीर्ष स्तर के फ़ंक्शन बाइंडिंग) के रूप में नाम देना संभव हो जाता है, और यह मुझे ऐसे गंभीर अंतर के रूप में दिखता है जो मैं करता हूं यह महसूस करना सही नहीं है कि यहां मूल मेमना शब्दावली लागू है। क्योंकि LC में ऐसा कुछ भी संभव नहीं है (यानी ठीक यही कारण है कि आपको पुनरावृत्ति के लिए वाई कॉम्बिनेटर की आवश्यकता है)। हास्केल में ((xy -> x) a और (const) का परिणाम समान है और दोनों ही अनुप्रयोग हैं, लेकिन मैं केवल "लैम्ब्डा एप्लिकेशन" के रूप में पहला शब्द होगा।
इंगो

3

बेनामी (अनाम) फ़ंक्शन या ऑब्जेक्ट जो आमतौर पर किसी अन्य फ़ंक्शन के तर्क के रूप में इनलेट होता है।

इसलिए, नाम स्थान कम प्रदूषित है।


1

लैम्ब्डा आमतौर पर एक कार्यात्मक प्रोग्रामिंग संदर्भ में एक फ़ंक्शन अभिव्यक्ति को संदर्भित करता है।

यह अजगर में एक लंबोदर अभिव्यक्ति है:

lambda x: x + 1

एक फ़ंक्शन का प्रतिनिधित्व करता है जो इसके पैरामीटर xको 1 से बढ़ाता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.