एक और दार्शनिक स्तर पर --- एक सेट की गणितीय अवधारणा और हास्केल सेट कार्यान्वयन के बीच कभी सख्त पत्राचार नहीं हो सकता है। क्यों नहीं? खैर, स्टार्टर्स के लिए टाइप सिस्टम। एक गणितीय सेट में कुछ भी हो सकता है: {x | x is a positive integer, i < 15}
एक सेट है, लेकिन {1, tree, ham sandwich}
है। हास्केल में, Set a
को कुछ विशेष प्रकार रखने की आवश्यकता होगी। एक ही सेट में डबल्स और फ्लोट्स डालने से टाइपशेक नहीं होगा।
जैसा कि अन्य ने कहा है, अगर आपको कुछ सेट जैसी चीजें करने की आवश्यकता है और टाइप प्रतिबंध को ध्यान में रखें, तो डेटासेट मौजूद है। यह प्रीलूड में नहीं है क्योंकि सूचियां आम तौर पर अधिक व्यावहारिक होती हैं। लेकिन वास्तव में, एक भाषा डिजाइन परिप्रेक्ष्य से, गणितीय सेटों को कई लोगों के बीच एक डेटाटाइप के रूप में सोचने का अर्थ नहीं है। सेट उससे अधिक मौलिक हैं। आपके पास सेट, और संख्याएं और सूचियां नहीं हैं; आपके पास संख्याओं और सूचियों के सेट हैं। पुनरावर्ती प्रकारों की शक्ति उस भेद को अस्पष्ट करती है, लेकिन यह अभी भी असली है।
हास्केल में एक जगह है, हालांकि, जहां हम मनमाने ढंग से संग्रह परिभाषित करते हैं, और फिर उन संग्रहों पर कार्यों को परिभाषित करते हैं। हास्केल में सेट की गणितीय अवधारणा का सबसे नज़दीकी एनालॉग सिस्टम सिस्टम ही है।
** मॉडरेटर नोट ** इस प्रश्न के तहत टिप्पणियां अधिकतर शोर, या शोर की प्रतिक्रिया थीं और उन्हें हटा दिया गया है। कृपया टिप्पणीत्मक और विषय पर टिप्पणियां रखें। –
मुझे इसके बजाय सूचियों के उपयोग का सुझाव देने वाले उत्तरों/टिप्पणियां दिखाई देती हैं। एक सूची सेट के लिए एक कुशल प्रतिस्थापन नहीं है। एक अनियंत्रित सूची में तत्व ढूंढने का समय सूची के आकार के साथ बढ़ता है, एक सेट में, स्थिर होने की उम्मीद है। – ribamar