क्या कोई व्यक्ति यह बता सकता है कि लैम्बडा क्या है? हमारे पास उनके लिए एक टैग है और वे सी # प्रश्न के रहस्यों पर हैं, लेकिन मुझे अभी तक एक अच्छी परिभाषा और स्पष्टीकरण नहीं मिला है कि वे पहले स्थान पर क्या हैं।
क्या कोई व्यक्ति यह बता सकता है कि लैम्बडा क्या है? हमारे पास उनके लिए एक टैग है और वे सी # प्रश्न के रहस्यों पर हैं, लेकिन मुझे अभी तक एक अच्छी परिभाषा और स्पष्टीकरण नहीं मिला है कि वे पहले स्थान पर क्या हैं।
जवाबों:
क्लोज़र, लैम्ब्डा और अनाम फ़ंक्शन आवश्यक रूप से एक ही चीज़ नहीं हैं।
एक अनाम फ़ंक्शन कोई भी फ़ंक्शन है जिसका अपना नाम नहीं है (या, कम से कम, आवश्यकता है)।
एक क्लोजर एक ऐसा फंक्शन है जो उन वैरिएबल तक पहुंच सकता है जो इसके लेक्सिकल स्कोप में थे, जब वे आउट हो गए थे स्कोप से । बेनामी कार्यों के लिए जरूरी नहीं है कि वे बंद हों, लेकिन वे अधिकांश भाषाओं में होते हैं और जब वे नहीं होते हैं तो कम उपयोगी हो जाते हैं।
एक लैम्ब्डा है .. कंप्यूटर विज्ञान के रूप में अभी तक बहुत अच्छी तरह से परिभाषित नहीं है। बहुत सारी भाषाएं भी शब्द का उपयोग नहीं करती हैं; इसके बजाय वे बस उन्हें क्लोजर या एनोन फ़ंक्शंस कहेंगे या अपनी खुद की शब्दावली का आविष्कार करेंगे। LISP में, एक लैम्ब्डा सिर्फ एक अनाम फ़ंक्शन है। पायथन में, एक लैम्ब्डा एक अनाम फ़ंक्शन है जो विशेष रूप से एक एकल अभिव्यक्ति तक सीमित है; अधिक कुछ भी, और आपको एक नामित फ़ंक्शन की आवश्यकता है। लैम्ब्डा दोनों भाषाओं में बंद हैं।
क्लोजर या अनाम फ़ंक्शन भी कहा जाता है .. मुझे यहां सबसे अच्छा विवरण मिला । मूल रूप से, कोड के इनलाइन ब्लॉक जिसे एक फ़ंक्शन के तर्क के रूप में पारित किया जा सकता है।
"लैम्ब्डा" लैम्बडा कैलकुलस या एक विशिष्ट लैम्ब्डा अभिव्यक्ति को संदर्भित करता है । लैम्ब्डा कैलकुलस मूल रूप से तर्क और गणित की एक शाखा है जो कार्यों से संबंधित है, और कार्यात्मक प्रोग्रामिंग भाषाओं का आधार है ।
~ विलियम रिले-लैंड
यह केवल एक अनाम फ़ंक्शन है जिसे इनलाइन घोषित किया गया है, सबसे आम तौर पर एक प्रतिनिधि को सौंपा गया है जब आप एक पूर्ण फ़ंक्शन लिखना नहीं चाहते हैं।
लिस्प / स्कीम जैसी भाषाओं में, वे अक्सर फंक्शन पैरामीटर के रूप में काफी उदारता से पारित होते हैं, लेकिन C # में मुहावरे आमतौर पर केवल कार्यों के आलसी मूल्यांकन के लिए इस्तेमाल किए गए लैंबड्स, जैसे कि लिनक में, या इवेंट-हैंडलिंग कोड को थोड़ा उलट करने के लिए मिलते हैं।
प्रोग्रामिंग में 'लैम्बडा' जैसी कोई चीज नहीं है। यह भाषा आदि पर निर्भर करता है।
संक्षेप में, आम तौर पर एक भाषा जो 'लंबोदा' है, अनाम कार्यों के लिए या कुछ मामलों में, क्लोजर के लिए इस शब्द का उपयोग करती है। जैसे, रूबी में:
f = lambda { return "this is a function with no name" }
puts f.call
पिछले उत्तरों के जवाब में:
-अनाम कार्यों के बारे में महत्वपूर्ण बात यह नहीं है कि उन्हें नाम की आवश्यकता नहीं है।
-क्लोसर एक अलग अवधारणा है।
-एक विशाल विकिपीडिया लेख इसे कोई स्पष्ट नहीं कर रहा है।
यहां मेरा जवाब 3 भागों में है:
1. एक लंबोदर एक फ़ंक्शन है जो एक अभिव्यक्ति भी है। यह महत्वपूर्ण बात है।
2. कई भाषाएं, जो तथाकथित "लंबोदा" को लागू करती हैं, इन छोटे कार्यों को आसान और तेज़ लिखने के लिए कुछ वाक्यात्मक चीनी जोड़ती हैं , लेकिन इसकी आवश्यकता नहीं है।
3. कुछ भाषाओं के लिए यह आवश्यक हो सकता है कि लैम्बडा का कोई दुष्प्रभाव न हो । यह कार्यात्मक अर्थों में एक अधिक शुद्ध मेमना होगा।
जब कोई फ़ंक्शन एक अभिव्यक्ति है, तो यह भाषा के भीतर "प्रथम श्रेणी का नागरिक" है। मैं इसके साथ सभी महत्वपूर्ण काम कर सकता हूं:
x = lambda(){ return "Hello World"; }
doit( 1, 2, lambda(a,b){ return a > b; }, 3 )
x = (lambda(a){ return a+1; }) + 5 // type error, not syntax error
(lambda(a,b){ print(a); log(b); })( 1, 2 ) // () is valid operator here
विकिपीडिया से बंद: http://en.wikipedia.org/wiki/Lambda#Lambda.2C_the_word
लिस्प और पायथन जैसी प्रोग्रामिंग भाषाओं में, लैम्ब्डा एक ऑपरेटर है जो लैम्बडा कैलकुलस उपयोग के बाद अनाम कार्यों या क्लोजर को निरूपित करने के लिए उपयोग किया जाता है।