जब मैं हास्केल सीख रहा था, तो मैंने इसके प्रकार की कक्षा पर ध्यान दिया , जो कि हास्केल से उत्पन्न एक महान आविष्कार माना जाता है।
हालाँकि, प्रकार वर्ग पर विकिपीडिया पृष्ठ में :
प्रोग्रामर फ़ंक्शन या स्थिर नामों के एक सेट को निर्दिष्ट करके, उनके संबंधित प्रकारों के साथ एक प्रकार की कक्षा को परिभाषित करता है, जो कि उस प्रकार के लिए मौजूद होना चाहिए जो कक्षा से संबंधित है।
जो मुझे जावा के इंटरफ़ेस के करीब लगता है ( विकिपीडिया के इंटरफ़ेस (जावा) पृष्ठ को उद्धृत करते हुए ):
जावा प्रोग्रामिंग भाषा में एक इंटरफ़ेस एक अमूर्त प्रकार है जिसका उपयोग एक इंटरफ़ेस निर्दिष्ट करने के लिए किया जाता है (शब्द के सामान्य अर्थ में) जो कक्षाएं लागू होती हैं।
ये दो समान दिखते हैं: टाइप क्लास एक प्रकार के व्यवहार को सीमित करता है, जबकि इंटरफ़ेस एक वर्ग के व्यवहार को सीमित करता है।
मुझे आश्चर्य है कि जावा में हास्केल और इंटरफ़ेस में टाइप क्लास के बीच अंतर और समानताएं क्या हैं, या शायद वे मौलिक रूप से अलग हैं?
संपादित करें: मैंने देखा कि haskell.org भी मानता है कि वे समान हैं । यदि वे समान हैं (या वे हैं?), तो इस तरह के प्रचार के साथ टाइप क्लास का व्यवहार क्यों किया जाता है?
अधिक संपादित करें: वाह, बहुत बढ़िया जवाब! मुझे लगता है कि मुझे उस समुदाय को तय करने देना होगा जो सबसे अच्छा है। हालांकि, जवाबों को पढ़ते समय, वे सभी सिर्फ यह कहते प्रतीत होते हैं कि "कई चीजें टाइपकास्ट कर सकती हैं, जबकि इंटरफ़ेस जेनरिक के साथ सामना नहीं कर सकता है" । मैं मदद नहीं कर सकता, लेकिन सोच रहा था कि टाइपकास्टल नहीं कर सकते, तो कुछ भी इंटरफेस हो सकता है? इसके अलावा, मैंने देखा कि विकिपीडिया का दावा है कि टाइपक्लास का आविष्कार मूल रूप से 1989 के पेपर में हुआ था * "एड-हॉक पोलिमोर्फ़िज्म को कम तदर्थ कैसे बनाया जाए", जबकि हास्केल अभी भी अपने पालने में है, जबकि जावा प्रोजेक्ट 1991 में शुरू किया गया था और पहली बार 1995 में जारी किया गया था। तो हो सकता है कि टाइपकास्ट के बजाय इंटरफेस के समान हो, इसके दूसरे तरीके के आसपास, उस इंटरफेस को टाइपकास्ट से प्रभावित किया गया था?क्या कोई दस्तावेज / कागजात इसका समर्थन करते हैं या इसे रोकते हैं? सभी उत्तर के लिए धन्यवाद, वे सभी बहुत ज्ञानवर्धक हैं!
सभी जानकारी के लिए धन्यवाद!