प्रकार सेट नहीं हैं।
आप देखें, सेट सिद्धांत में कई विशेषताएं हैं जो केवल प्रकारों पर लागू नहीं होती हैं, और इसके विपरीत । उदाहरण के लिए, किसी ऑब्जेक्ट में एकल विहित प्रकार होता है। यह कई अलग-अलग प्रकारों का उदाहरण हो सकता है, लेकिन उनमें से केवल एक प्रकार का उपयोग इसे तुरंत करने के लिए किया गया था। सेट सिद्धांत में "विहित" सेट की कोई धारणा नहीं है।
सेट सिद्धांत आप की अनुमति देता है मक्खी पर सबसेट बनाने , यदि आप एक नियम है कि यह बताता है कि सबसेट के अंतर्गत आता है है। प्रकार सिद्धांत आमतौर पर इसकी अनुमति नहीं देता है। जबकि अधिकांश भाषाओं में एक Number
प्रकार या कुछ समान है, उनके पास एक प्रकार नहीं है EvenNumber
, और न ही एक बनाने के लिए सीधा होगा। मेरा मतलब है, यह खुद को परिभाषित करने के लिए काफी आसान है, लेकिन किसी भी मौजूदा Number
एस जो भी होने के लिए जादुई रूप से EvenNumber
एस में तब्दील नहीं होगा ।
वास्तव में, यह कहना कि आप "सबस्ट्रेट" बना सकते हैं, कुछ हद तक निराशाजनक है, क्योंकि सेट पूरी तरह से एक अलग तरह का जानवर है। सेट सिद्धांत में, उन सबसेट पहले से मौजूद हैं , सभी अनंत तरीकों से आप उन्हें परिभाषित कर सकते हैं। प्रकार सिद्धांत रूप में, हम आम तौर पर किसी भी समय पर एक परिमित (यदि बड़े) प्रकारों की संख्या के साथ काम होने की उम्मीद। केवल प्रकारों के बारे में कहा जाता है कि वे वास्तव में परिभाषित किए गए हैं, न कि हर प्रकार जिन्हें हम संभवतः परिभाषित कर सकते हैं।
सेटों को प्रत्यक्ष या अप्रत्यक्ष रूप से खुद को शामिल करने की अनुमति नहीं है । कुछ भाषाएँ, जैसे कि पायथन, कम नियमित संरचनाओं के साथ प्रकार प्रदान करती हैं (पायथन में, type
विहित प्रकार है type
, और object
इसे एक उदाहरण माना जाता है object
)। दूसरी ओर, अधिकांश भाषाएँ उपयोगकर्ता-परिभाषित प्रकारों को इस प्रकार की प्रवंचना में संलग्न होने की अनुमति नहीं देती हैं ।
सेट को आमतौर पर एक दूसरे में समाहित किए बिना ओवरलैप करने की अनुमति होती है। यह प्रकार के सिद्धांत में असामान्य है, हालांकि कुछ भाषाएं इसे कई विरासत के रूप में समर्थन करती हैं। अन्य भाषाएँ, जैसे कि जावा, केवल इस के प्रतिबंधित रूप की अनुमति देती हैं या इसे पूरी तरह से अस्वीकृत कर देती हैं।
खाली प्रकार मौजूद है (इसे नीचे का प्रकार कहा जाता है ), लेकिन अधिकांश भाषाएं इसका समर्थन नहीं करती हैं, या इसे प्रथम श्रेणी के प्रकार के रूप में नहीं मानती हैं। "प्रकार जिसमें अन्य सभी प्रकार शामिल हैं" भी मौजूद है (इसे शीर्ष प्रकार कहा जाता है ) और व्यापक रूप से समर्थित है, सेट सिद्धांत के विपरीत।
एनबी : जैसा कि कुछ टिप्पणीकारों ने पहले बताया था (इससे पहले कि थ्रेड चैट करने के लिए स्थानांतरित किया गया था), यह सेट सिद्धांत और अन्य मानक गणितीय निर्माणों के साथ मॉडल बनाना संभव है। उदाहरण के लिए, आप सेट के रूप में मॉडलिंग प्रकारों के बजाय एक संबंध के रूप में सदस्यता टाइप कर सकते हैं। लेकिन व्यवहार में, यह बहुत सरल है यदि आप सेट सिद्धांत के बजाय श्रेणी सिद्धांत का उपयोग करते हैं । उदाहरण के लिए हास्केल इसका प्रकार सिद्धांत है।
"सबटाइपिंग" की धारणा वास्तव में "सब्सेट" की धारणा से काफी अलग है। अगर X
की एक उप-प्रकार है Y
, इसका मतलब है कि हम कर सकते हैं विकल्प के उदाहरण Y
के उदाहरण के लिए X
और कार्यक्रम अभी भी होगा "काम" कुछ अर्थों में। यह संरचनात्मक के बजाय व्यवहारिक है, हालांकि कुछ भाषाओं (जैसे गो, जंग, यकीनन सी) ने उत्तरार्द्ध को सुविधा के कारणों के लिए चुना है, या तो प्रोग्रामर या भाषा कार्यान्वयन के लिए।
a
औरb
उस प्रकार के सदस्यों, कर रहे हैं के रूप में किलन आगे उल्लेख MyClass है। isomorphic क्षेत्रों के साथ रिकॉर्ड केa
औरb
के प्रकारint
औरdouble
- आप ऐसा एक रिकार्ड लेने के लिए और इसे बंद में कर सकता है की एक आवृत्तिmyclass
।