क्या कोई मुझे बता सकता है कि जावा में पाइथन के लैम्ब्डा फ़ंक्शंस के बराबर है या नहीं?जावा में पाइथन के लैम्ब्डा कार्यों के लिए समतुल्य?
उत्तर
एक विचार जेनेरिक public interface Lambda<T>
पर आधारित है - http://www.javalobby.org/java/forums/t75427.html देखें।
मुझे नहीं लगता कि वहां एक सटीक समतुल्य है, हालांकि अज्ञात वर्ग हैं जो आप जितना करीब प्राप्त कर सकते हैं। लेकिन अभी भी बहुत अलग है। जोएल स्पॉस्की ने एक लेख लिखा कि छात्रों ने केवल जावा सिखाया कि कैसे कार्यात्मक शैली प्रोग्रामिंग की इन सुंदरियों पर गायब हैं: Can Your Programming Language Do This?।
दुर्भाग्यवश, जावा में कोई लैम्बडा नहीं है। ,
interface MyLambda {
void theFunc(); // here we define the interface for the function
}
public class Something {
static void execute(MyLambda l) {
l.theFunc(); // this class just wants to use the lambda for something
}
}
public class Test {
static void main(String[] args) {
Something.execute(new MyLambda() { // here we create an anonymous class
void theFunc() { // implementing MyLambda
System.out.println("Hello world!");
}
});
}
}
जाहिर है इन अलग फ़ाइलों :(
लैम्ब्डा एक मूल्य ले सकता है और वापस कर सकता है । आप कॉल करने योग्य की तरह कुछ और चाहते हैं। – Dustin
पैरामीटर स्वीकार करने और मूल्यों को वापस करने में सक्षम होने के अलावा, लैम्ब्डा भी उन परिभाषाओं में स्थानीय चर का उपयोग कर सकते हैं जिन्हें वे परिभाषित किए गए थे।जावा में, अज्ञात कक्षाएं उन चर के चर में अंतिम चर का उपयोग कर सकती हैं, जिन्हें परिभाषित किया गया था, जो कि समान है। ओटीओएच, कुछ कॉल करने योग्य को लागू करने के लिए यह एक अच्छा विचार हो सकता है। – gooli
एक छोटा सा क्विबल: 'माईलांबडा' को एक अलग फ़ाइल में नहीं होना चाहिए; आप इसे 'कुछ' के आंतरिक, सार्वजनिक, स्थैतिक इंटरफ़ेस के रूप में घोषित कर सकते हैं। –
में होना चाहिए था आप: हालांकि, अगर आप गुमनाम वर्गों के साथ लगभग ही प्रभाव (एक बहुत बदसूरत तरीके से) प्राप्त कर सकते हैं एक अंतरफलक बना सकते हैं इस प्रकार
public interface myLambda<In, Out> {
Out call(In i);
}
आप लिखने के लिए सक्षम करने के लिए कहते हैं,
Function<MyObj, Boolean> func = new Function<MyObj, Boolean>() {
public Boolean callFor(myObj obj) {
return obj.canDoStuff();
};
MyObj thing = getThing;
if (func.callFor(thing)) {
doSomeStuff();
} else {
doOtherStuff();
}
यह अभी भी थोड़ा सा है, लेकिन इसमें कम से कम इनपुट/आउटपुट है।
मुझे लगता है कि आप उस दूसरे कोड स्निपेट के लाइन 5 पर एक ब्रैकेट खो रहे हैं। मैंने इसे खुद जोड़ने की कोशिश की, लेकिन स्टैक ओवरफ्लो मुझे लंबाई में केवल 1 वर्ण के संशोधन करने नहीं देगा। – falsePockets
हां,
जावा में जावा में लैम्ब्डा अभिव्यक्तियां पेश की गई हैं। लैम्ब्डा भाव के लिए
बेसिक वाक्य रचना कर रहे हैं:
(parameters)->
{
statements;
}
उदाहरण
(String s)->
{
System.out.println(s);
}
चेक इस लिंक:
http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
की रिहाई जावा 8, lambda- के साथ अभिव्यक्ति एन है ओउ उपलब्ध और जावा में लैम्ब्डा फ़ंक्शन वास्तव में अजगरों की तुलना में "अधिक शक्तिशाली" है।
पायथन में, लैम्ब्डा-अभिव्यक्ति में केवल उसके शरीर के लिए एक अभिव्यक्ति हो सकती है, और return
कथन की अनुमति नहीं है। जावा में, आप ऐसा कुछ कर सकते हैं: (int a, int b) -> { return a * b; };
और अन्य वैकल्पिक चीजें भी।
जावा 8 Function Interface
नामक एक और इंटरफेस भी पेश करता है। आप इसे भी देखना चाहेंगे।
- 1. जावा के लिए Yacc समतुल्य
- 2. हास्केल में पाइथन urllib के समतुल्य
- 3. प्रतिबिंब के जावा समतुल्य।
- 4. पाइथन लैम्ब्डा के साथ अगर बिना
- 5. ग्रहण के लिए GhostDoc समतुल्य (जावा)
- 6. क्या LINQ के लिए जावा समतुल्य है?
- 7. जावा में फ़ाइल.सेपरेटर के समतुल्य सी # समतुल्य है
- 8. जावा में std :: वेक्टर के समतुल्य?
- 9. जावा इनवेरिएंट संस्कृति के समतुल्य
- 10. सी # जावा संसाधन के समतुल्य
- 11. सी ++ में जावा इंटरफेस के समतुल्य?
- 12. जावा में स्पिंटफ समतुल्य
- 13. क्या पर्ल मॉड्यूल टर्म :: VT102 के लिए पाइथन समतुल्य है?
- 14. सी ++ एसटीएल वेक्टर/सूची कंटेनर के लिए पाइथन समतुल्य
- 15. लैम्ब्डा कार्यों पर हास्केल गार्ड?
- 16. सी # जावा के अपवाद के समतुल्य .printStackTrace()?
- 17. जावा के स्ट्रिंग रीडर के लिए रूबी समतुल्य क्या है?
- 18. सी ++ जावा के अवरुद्ध करने के लिए समतुल्य
- 19. मर्क एलएस-फाइलों के समतुल्य में समतुल्य?
- 20. क्या MATLAB के conv2 फ़ंक्शन के पाइथन समतुल्य है?
- 21. जावा में PHP के क्रिप्ट फ़ंक्शन के समतुल्य
- 22. जावा कार्यों के लिए क्लोजर में कोई लागू फ़ंक्शन है?
- 23. जावा सिस्टम के बाहर विजुअल स्टूडियो समतुल्य
- 24. का उपयोग सी चर initialisation के दौरान लैम्ब्डा कार्यों ++
- 25. file_get_contents() के लिए समतुल्य फ़ंक्शन?
- 26. दो अलग-अलग फाइबोनैकी कार्यों को समतुल्य
- 27. रूबी में कक्षा विधि (जावा में स्थिर के समतुल्य)
- 28. जावा समतुल्य .NET के स्ट्रिंग। Format
- 29. पाइथन प्रकार बिना लैम्ब्डा अभिव्यक्ति
- 30. पायथन की संपत्ति() के जावा समतुल्य क्या है?
पांच साल बाद, जावा 8 ने लैम्बडा एक्सप्रेशन को भाषा सुविधा के रूप में जोड़ा है और थोक डेटा ऑपरेशंस से निपटने के लिए एक नया स्ट्रीम एपीआई जोड़ा है। काफी समझ नहीं है, लेकिन अभी भी उपयोगी है। –
इसे देखें: [जावा 8 लैम्बडास क्लोजर हैं?] (Http://bruceeckel.github.io/2015/10/17/are-java-8-lambdas-closures/) –