जावा 6 में मोनड व्यक्त करने का सामान्य मामला है? "सामान्य मामला" शब्द नोट करें — यह संभव हो सकता है कि मोनड का सामान्य मामला स्पष्ट नहीं है, हालांकि मोनड के कई विशेष मामले (यानी कई विशिष्ट मोनैड) स्पष्ट हैं।जावा 6 में मोनड व्यक्त करने का सामान्य मामला है?
समस्या यहाँ (कमी) Higher-kinded generics in Java है; हालांकि, मैंने देखा कि नमूना हास्केल कोड वास्तव में https://stackoverflow.com/a/877036/1123502 (यानी public class Fix<F extends Fix<F>>
) जैसे दृष्टिकोण का उपयोग कर जावा पर पोर्ट किया गया था।
, गैर प्रकार सुरक्षित कार्यान्वयन (वस्तु और downcasts का उपयोग कर की तरह) दिलचस्प नहीं हैं।
अद्यतन: 2 आम मोनैड परिभाषाएं हैं: जुड़ें-एफएमएपी और बाइंड-रिटर्न। यद्यपि वे (गणितीय) समकक्ष हैं, लेकिन वे इस अर्थ में समकक्ष नहीं हो सकते हैं कि जावा में एक परिभाषा व्यक्त की जा सकती है, जबकि अन्य नहीं है (हालांकि, ऐसा लगता है कि गैर समकक्ष असंभव है)। तो मेरा सवाल दोनों परिभाषाओं की चिंता करता है।
लब्बोलुआब यह है: किसी को सभी बाधाओं को दूर किया और जावा 6 में लिखा था "सामान्य स्थिति" इकाई? या, वैकल्पिक रूप से, कृपया एक पेपर, या एक पूरी तरह से ब्लॉग पोस्ट इंगित करें, या पूरी तरह से समझाएं कि यह क्यों संभव नहीं है।
यह भी देखें [* जावा * में मोनाड्स] (http://logicaltypes.blogspot.com/2011/09/monads-in-java.html)। – trashgod
@trashgod नोट हालांकि उस कार्यान्वयन में 'बाइंड' का रिटर्न प्रकार 'मोनाड' है -' एम 'नहीं, जो जावा में संभव नहीं होगा। नतीजतन यदि आपके पास मोनाड से प्राप्त एक लिस्ट क्लास है, तो इस बात की कोई गारंटी नहीं है कि ऐसी सूची में 'बाइंड' को कॉल करने से दूसरी सूची तैयार होगी, इसलिए 'मोनाडिकलिस्ट स्ट्रिंग्स = myMonadicList.bind जैसे कुछ लिखना कानूनी नहीं होगा (...) बिना किसी कलाकार के। ... –
sepp2k
... तो उस आलेख में दिया गया अमूर्त वर्ग मोनैड अवधारणा का पूरी तरह से सही कार्यान्वयन नहीं है (हालांकि यह संभव है कि आप जावा में जितना सही हो उतना सही हो)। – sepp2k