हास्केल के प्रकार प्रणाली के पीछे सिद्धांत को समझने के लिए गणित की आवश्यकता थी?


9

हाल ही में, मुझे हास्केल में गहरी दिलचस्पी हो गई है।

सामान्य रूप से नई अवधारणाओं (उदाहरण के लिए फ़ोरल कीवर्ड और एसटी मोनद ) और हास्केल के प्रकार प्रणाली को सीखने का प्रयास करते हुए , मैं लगातार श्रेणी सिद्धांत और लैम्ब्डा कैलकुलस से अवधारणाओं में चलता हूं । तो, मुझे आश्चर्य है:

  1. हास्केल के प्रकार प्रणाली की मजबूत समझ के लिए गणित की कौन सी अन्य शाखाएं महत्वपूर्ण हैं?

  2. क्या मैं इन गणितों का कठोर अध्ययन कर सकता हूं और इसके बजाय कुछ निश्चित अवधारणाओं पर ध्यान केंद्रित कर सकता हूं? (उदाहरण के लिए लैम्ब्डा कैलकुलस में क्वांटिफायर।) यदि हां, तो कौन सी अवधारणाएं आवश्यक हैं?

मैं जल्द ही टाइप और प्रोग्रामिंग लैंग्वेज चुनने की उम्मीद कर रहा हूं , फिर भी, कृपया उपयुक्त पढ़ने वाले किसी भी वैकल्पिक संसाधन का सुझाव दें।


4
हास्केल के साथ जानने और काम करने के लिए श्रेणी सिद्धांत सामग्री आवश्यक नहीं है, लेकिन यह कुछ मूलभूत अवधारणाओं के साथ मदद कर सकता है। इस सामान को समझने के लिए गणित की एकमात्र वास्तविक शाखा श्रेणी थ्योरी सामान है, यह न केवल वहां निहित है, बल्कि इसमें आपको अन्य गणित पर बहुत कम निर्भरता मिलेगी, यह उस तरह से बहुत अलग क्षेत्र है। लैम्ब्डा कैलकुलस उठाओ और विभिन्न लैम्बडा वेरिएंट से जुड़े विभिन्न प्रकार के सिस्टम का अध्ययन करें, और इसके अलावा यह एसओ उत्तर पढ़ें और श्रेणी सिद्धांत के बारे में पढ़ें।
जिमी होफा

3
मैं अंतर्निहित प्रकार प्रणाली में महारत हासिल करने के लिए नहीं पकड़ा जा सकता। कम से कम सब कुछ जानने के लिए आप कुछ परियोजनाओं को पूरा करने से रोक नहीं है। हास्केल में बस कुछ सरल परियोजनाओं को पूरा करने से मुझे इसके पीछे की गणितीय सुंदरता को देखने की अनुमति मिली और मुझे इसे समझने के लिए प्रेरित किया।
चाओसपांडियन

2
@ChaosPandion मैं उस दृष्टिकोण से सहमत हूं, लेकिन मैं एक ऐसी परियोजना पर काम कर रहा हूं जिसके लिए मोनाड में लिखने की आवश्यकता हो सकती है ST। यह कोड लिखने के लिए मुश्किल है जो तब संकलित करेगा जब मैं सभी प्रासंगिक प्रकार के हस्ताक्षरों को नहीं समझता हूं, इसलिए मुझे लगा कि प्रकार प्रणाली के बारे में मेरी समझ में सुधार होगा।
रोब

3
@robjb - मैं आपसे निश्चित रूप से सहमत हूँ कि एक गहरी समझ विवेकपूर्ण है। ईमानदारी से मेरी टिप्पणी को आम दर्शकों पर अधिक निर्देशित किया गया था जो हास्केल को भी कोशिश करने के लिए डरा सकते हैं।
चोसपंडियन

जवाबों:


11

नहीं, आपको हास्केल को समझने के लिए श्रेणी सिद्धांत पर एक पुस्तक लेने की आवश्यकता नहीं है।

मैं कुछ वर्षों के लिए हास्केल का उपयोग कर रहा हूं, और कुछ श्रेणी के सिद्धांत को जिज्ञासा से बाहर निकाला है, यह वास्तव में आवश्यक नहीं है। एक तरफ, यह देखना अच्छा है कि ये सभी सार "बड़ी तस्वीर" में कैसे फिट होते हैं, लेकिन मैं "ओह माय गोश" नहीं गया, मुझे बस इस Maybeवर्ग से []एस तक एक प्रोफेसर बनाने की जरूरत है और फिर मैं बचा सकता हूं राजकुमारी!"।

अब आप हास्केल प्रकार के सिद्धांत के साथ क्या कर रहे हैं, इस पर निर्भर करता है।

यदि आप सिर्फ हेकेल सीख रहे हैं तो टाइप सिस्टम की हर बारीकियों को समझने की कोशिश न करें । कृपया न करें, यह पहले C ++ टेम्पलेट मेटा-प्रोग्रामिंग सीखने की कोशिश करने जैसा है। फैंसी प्रकार उत्कृष्ट उपकरण हैं, लेकिन कार्यात्मक प्रोग्रामिंग धड़कनों की एक अच्छी समझ होने के कारण अप्रत्यक्ष बहुरूपता को समझते हैं।

अब कहते हैं कि हास्केल के एक या दो साल बाद आप हर सूक्ष्म टुकड़े को समझना चाहते हैं कि हास्केल का टाइप सिस्टम कैसे काम करता है, तो हाँ, कुछ प्रकार के सिद्धांत मददगार हो सकते हैं।

यह चीजों को कैसे काम करता है इसके पीछे के कुछ तर्क को समझने में आपकी मदद करेगा, साथ ही यह स्पष्ट रूप से कंप्यूटर विज्ञान आईएमओ की एक बहुत अच्छी शाखा है जो देखने लायक है। आप चेरी को अपनी रुचि के हिस्सों को चुन सकते हैं और फिर भी एक सभ्य राशि सीख सकते हैं।

हास्केल के लिए, STLC, HM टाइप सिस्टम (सिस्टम F) और शायद लैम्ब्डा क्यूब (Haskell is System Fw iirc) और iso-recursive प्रकारों को देख रहा है। प्रकार और प्रोग्रामिंग भाषाएं शुरू करने के लिए एक महान संसाधन हैं और इन सभी को शामिल करती हैं और बहुत कुछ।

यदि आप वास्तव में कूल-एड पीना चाहते हैं और यह जानना चाहते हैं कि आप एक नवोदित प्रकार के सिद्धांतकार हैं, तो एजडा या कोक पर जाएँ। ये सुविधा "आश्रित प्रकार" हैं, हास्केल की तुलना में लैम्बडा क्यूब में एक कदम आगे। आश्रित प्रकार, शर्तों पर निर्भर करते हैं। इसका मतलब यह है कि प्रकार वास्तव में प्रमेय साबित करने के लिए पर्याप्त शक्तिशाली हैं। जिज्ञासु के लिए, "करी हावर्ड आइसोमोर्फिज्म" गुगुलिंग को कुछ दिलचस्प परिणाम लाने चाहिए।


अगाडा और कोक का संक्षिप्त विवरण उपयोगी होगा।
चोसपंडियन

@ChaosPandion अपडेट किया गया
डैनियल ग्रैज़र

जो अच्छा लगता है। मुझे लगा कि सिर्फ यह कहना कि कई लोगों के हितों को साधने के लिए नाम पर्याप्त नहीं होंगे।
चोसपांडियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.