सामान्य रूप से प्रोग्रामिंग और शब्दावली प्रकार के संबंध में शब्दावली की मेरी समझ कुछ ऐसी चीज है जो विशिष्ट वस्तुओं के गुणों को अच्छी तरह से परिभाषित अर्थ के साथ देती है।
यहाँ हास्केल में कुछ उदाहरण हैं:
पर विचार करें Optional
/Maybe
प्रकार और एक शुद्ध समारोह है कि एक वेब सर्वर के HTTP जबाब लेता है और जबाब के कोड निकालता है।
getCode :: String -> Int
अब मान लें कि जब हम इस समारोह को चलाते हैं तो हम नहीं जानते कि प्रतिक्रिया सफल थी या नहीं - कोड बिल्कुल मौजूद नहीं हो सकता है। कोड गायब होने पर हम मामले का प्रतिनिधित्व कैसे करते हैं? हम कुछ कृत्रिम मूल्य -1
या 0
असाइन कर सकते हैं या हम इस पूरे समारोह प्रकार बदल सकते हैं:
getCode :: String -> Maybe Int
इसके अलावा Maybe
रूपों एक Monad
, Functor
, Applicative
, Foldable
और हास्केल में अन्य typeclasses का एक समूह। प्रत्येक टाइपक्लास अपनी मौजूदगी/अनुपस्थिति का सम्मान करते समय प्रश्न में मूल्य में हेरफेर करने के लिए अतिरिक्त क्षमताओं को जोड़ता है।
Product
/Sum
हास्केल में टाइप जोड़े और Either a b
के रूप में दर्शाए जाते हैं। दोबारा - Product
या Sum
के माध्यम से कुछ परिभाषित करना एक अच्छी तरह से परिभाषित अर्थ Product a b
जोड़ता है - दोनों मान मौजूद होना चाहिए, Sum a b
- एक मान मौजूद होना चाहिए और मुफ्त में कानूनों का एक समूह जोड़ना चाहिए।
क्या आप संदर्भ में इस्तेमाल किए गए शब्द "शब्दावली प्रकार" के लिए कोई लिंक/उद्धरण दे सकते हैं? मैंने इसे पहले कभी नहीं देखा है और मैं उत्सुक हूं अगर यह किसी उत्तर के लिए अधिक पृष्ठभूमि प्रदान करने में मदद करेगा। ये ज्यादातर [बीजगणित डेटा प्रकार] हैं (https://en.wikipedia.org/wiki/Algebraic_data_type)। –
जैसा कि जॉन ने कहा, आपने इन शर्तों के संबंध में शब्दावली प्रकार कहां उपयोग किया है? इसके लिए इंटरनेट खोज करने के बाद भी कुछ नहीं आया है, – Dijkgraaf
हमें संदर्भ दिखाता है लेकिन मुझे लगता है कि इसका मतलब है कि किसी विशेष प्रकार के संदर्भ में विभिन्न प्रकार की शब्दावली हैं! –