क्या श्रेणी थ्योरी कार्यात्मक प्रोग्रामिंग सीखने के लिए उपयोगी है?


118

मैं हास्केल सीख रहा हूं और मैं भाषा से रोमांचित हूं। हालांकि मेरे पास कोई गंभीर गणित या सीएस पृष्ठभूमि नहीं है। लेकिन मैं एक अनुभवी सॉफ्टवेयर प्रोग्रामर हूं।

मैं श्रेणी सिद्धांत सीखना चाहता हूं ताकि मैं हास्केल में बेहतर बन सकूं।

हास्केल को समझने के लिए श्रेणी सिद्धांत में कौन से विषय सीखने चाहिए?



1
मैं सराहना करता हूं कि आप प्रोग्रामिंग और सीएस को अलग करते हैं।
जेटी

4
"लर्निंग श्रेणी का सिद्धांत हास्केल में बेहतर बनने के लिए" एक सा है "टेनिस में बेहतर भौतिकी सीखना"
user26756

जवाबों:


115

एक में सैद्धांतिक कंप्यूटर विज्ञान साइट में पिछले जवाब , मैंने कहा कि श्रेणी सिद्धांत प्रकार सिद्धांत के लिए "नींव" है। यहां, मैं कुछ और मजबूत कहना चाहूंगा। श्रेणी सिद्धांत प्रकार सिद्धांत है । इसके विपरीत, प्रकार सिद्धांत श्रेणी सिद्धांत है । मुझे इन बिंदुओं पर विस्तार करने दें।

श्रेणी सिद्धांत प्रकार सिद्धांत है

f:ABABf

ABf

प्रकार सिद्धांत श्रेणी सिद्धांत है

"प्रकार सिद्धांत," से मेरा मतलब है कि किसी भी प्रकार की टाइप की गई औपचारिक भाषा, जो अवधि-गठन के कठोर नियमों पर आधारित है, जो यह सुनिश्चित करती है कि सब कुछ प्रकार की जाँच करें। यह पता चला है कि, जब भी हम ऐसी भाषा में काम करते हैं, हम एक श्रेणी-सिद्धांतिक संरचना में काम कर रहे हैं। यहां तक ​​कि अगर हम सेट-थ्योरैटिक नोटेशन का उपयोग करते हैं और सेट-थ्योरिटिक रूप से सोचते हैं, तब भी हम लेखन सामग्री को समाप्त कर देते हैं जो स्पष्ट रूप से समझ में आता है। यह एक आश्चर्यजनक तथ्य है

ऐतिहासिक रूप से, दाना स्कॉट इस का एहसास करने वाले पहले व्यक्ति हो सकते हैं। उन्होंने टाइप्ड (और अनकैप्ड) लैम्ब्डा कैलकुलस पर आधारित प्रोग्रामिंग भाषाओं के सिमेंटिक मॉडल तैयार करने का काम किया। इस उद्देश्य के लिए पारंपरिक सेट-थियेट्रिक मॉडल अपर्याप्त थे, क्योंकि प्रोग्रामिंग भाषाओं में अप्रतिबंधित पुनरावृत्ति शामिल है जिसमें सिद्धांत की कमी है। स्कॉट ने प्रोग्रामिंग मॉडल पर कब्जा करने वाले सिमेंटिक मॉडल की एक श्रृंखला का आविष्कार किया, और यह एहसास हुआ कि टाइप किए गए लैम्ब्डा कैलकुलस ने कार्टेजियन बंद श्रेणियों नामक श्रेणियों के एक वर्ग का प्रतिनिधित्व किया । बहुत सारे कार्टेशियन बंद श्रेणियां हैं जो "सेट-सिद्धांतवादी" नहीं हैं। लेकिन टाइप किए गए लैम्ब्डा कैलकुलस उन सभी पर समान रूप से लागू होते हैं। स्कॉट ने एक अच्छा निबंध लिखा था जिसका नाम था " लैम्बडा कैलकुलस के संबंधित सिद्धांत"यह बताते हुए कि क्या चल रहा है, जिसके कुछ भाग वेब पर उपलब्ध हैं। मूल लेख" टू एचबी करी: एसेज़ ऑन कॉम्बिनेटर लॉजिक, लैम्ब्डा कैलकुलस एंड फॉर्मेलिज्म ", अकादमिक प्रेस, 1980 में प्रकाशित किया गया था। बेरी और क्यूरियन एक ही अहसास के लिए आया था, शायद स्वतंत्र रूप से। उन्होंने कार्यात्मक भाषाओं को लागू करने में इन विचारों का उपयोग करने के लिए एक श्रेणीबद्ध अमूर्त मशीन (सीएएम) को परिभाषित किया , और जिस भाषा को उन्होंने लागू किया उसे "सीएएमएल" कहा गया जो कि माइक्रोसॉफ्ट के एफ # की अंतर्निहित रूपरेखा है ।

×Listबहुरंगी कार्यों की अवधारणा को औपचारिक रूप देने के लिए ठीक है। उन्होंने उन्हें "प्राकृतिक परिवर्तन", "प्राकृतिक" कहा, क्योंकि वे ही हैं जो आप प्रकार चर का उपयोग करके सही-सही तरीके से लिख सकते हैं। इसलिए, कोई कह सकता है कि श्रेणी सिद्धांत का आविष्कार ठीक उसी तरह किया गया, जैसा कि प्रोग्रामिंग भाषाओं के अस्तित्व में आने से पहले ही, पॉलीमॉर्फिक प्रोग्रामिंग भाषाओं को औपचारिक रूप देने के लिए किया गया था!

एक सेट-सिद्धांतवादी परंपरावादी को उन सिद्धांतों और प्राकृतिक परिवर्तनों का ज्ञान नहीं है, जो सतह के नीचे चल रहे हैं, जब वह सेट-सिद्धांत संबंधी अधिसूचनाओं का उपयोग करता है। लेकिन, जब तक वह विश्वासपूर्वक प्रकार प्रणाली का उपयोग कर रहा है, वह वास्तव में उनके बारे में जागरूक हुए बिना श्रेणीबद्ध निर्माण कर रहा है।


सभी ने कहा और किया, श्रेणी सिद्धांत प्रकार और कार्यों का सर्वोत्कृष्ट गणितीय सिद्धांत है। तो, सभी प्रोग्रामर श्रेणी सिद्धांत, विशेष रूप से कार्यात्मक प्रोग्रामर के एक बिट को सीखने से लाभ उठा सकते हैं। दुर्भाग्य से, विशेष रूप से प्रोग्रामर पर लक्षित श्रेणी के सिद्धांत पर कोई पाठ्य पुस्तकें नहीं लगती हैं। "कंप्यूटर विज्ञान के लिए श्रेणी सिद्धांत" किताबें आमतौर पर सैद्धांतिक कंप्यूटर विज्ञान के छात्रों / शोधकर्ताओं पर लक्षित होती हैं। कंप्यूटर वैज्ञानिकों के लिए बेसिक श्रेणी के सिद्धांत बेंजामिन पियर्स की पुस्तक शायद उनमें से सबसे अधिक पठनीय है।

हालांकि, वेब पर बहुत सारे संसाधन हैं, जो प्रोग्रामर पर लक्षित हैं। Haskellwiki पेज एक अच्छा प्रारंभिक बिंदु हो सकता है। पर मिडलैंड्स ग्रेजुएट स्कूल , हम पर श्रेणी सिद्धांत (दूसरों के बीच) व्याख्यान है। ग्राहम हटन के कोर्स को "शुरुआती" कोर्स के रूप में और खदान को "उन्नत" कोर्स के रूप में आंका गया था। लेकिन वे दोनों अनिवार्य रूप से एक ही सामग्री को कवर करते हैं, विभिन्न गहराई तक जा रहे हैं। दुनिया भर से किताबों और व्याख्यान नोटों पर यूनिवर्सिटी ऑफ चालर्स का एक अच्छा संसाधन पृष्ठ है। "सिगफ़ेप" का उत्साही ब्लॉग साइट प्रोग्रामर के दृष्टिकोण से बहुत अच्छी अंतर्ज्ञान प्रदान करता है।

मूल विषय जिन्हें आप सीखना चाहते हैं वे हैं:

  • श्रेणियों की परिभाषा, और श्रेणियों के कुछ उदाहरण
  • फंक्शनलर्स, और उनके उदाहरण
  • प्राकृतिक परिवर्तन, और उनके उदाहरण
  • उत्पाद, प्रतिपादक और प्रतिपादक (फ़ंक्शन स्थान), प्रारंभिक और टर्मिनल ऑब्जेक्ट की परिभाषा।
  • adjunctions
  • मोनाड्स, अल्जेब्रा और क्लेली श्रेणियां

मिडलैंड्स ग्रेजुएट स्कूल में मेरे अपने व्याख्यान नोट्स में पिछले एक (मोनडेस) को छोड़कर इन सभी विषयों को शामिल किया गया है। इन दिनों भिक्षुओं के लिए बहुत सारे अन्य संसाधन उपलब्ध हैं। तो यह एक बड़ा नुकसान नहीं है।

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


3
@UdayReddy मैं प्रकार सिद्धांत के साथ श्रेणी सिद्धांत की आपकी पहचान से बहुत असहमत हूं। आधुनिक प्रकार का सिद्धांत संक्षिप्त प्रक्रियाओं के प्रकारों के बारे में है, उदाहरण के लिए सत्र प्रकारों की सिद्धांत परंपरा। मेरे ज्ञान का सबसे अच्छा करने के लिए इस तरह के टाइपिंग सिस्टम की कोई स्पष्ट समझ नहीं है।
मार्टिन बर्गर

6
@MartinBerger मुझे लगता है कि "टाइप सिद्धांत" की आपकी व्याख्या थोड़ी संकीर्ण है। हालांकि, मैं मानता हूं कि सत्र प्रकारों की एक उचित प्रकार-सिद्धांत और श्रेणी-सिद्धांतिक समझ वर्तमान में एक अच्छी शोध चुनौती है, जिस पर मैं समय बिताना चाहता हूं।
उदय रेड्डी

2
@MartinBerger। यह देखने के लिए कि श्रेणी सिद्धांत अभिकलन की समृद्ध धारणाओं पर कैसे लागू होता है, मैं आपको यह देखने के लिए आमंत्रित करता हूं कि यह कैसे अनिवार्य प्रोग्रामिंग के सिद्धांत पर लागू किया गया है और गेम शब्दार्थ (जो फिर से अभिकलन संगणनाओं को अच्छी तरह से सांकेतिक शब्दों में बदल सकता है)। इसलिए, मुझे विश्वास नहीं है कि कार्यात्मक प्रोग्रामिंग का श्रेणी सिद्धांत पर एकाधिकार है।
उदय रेड्डी

1
f:PQfPQ

2
"दुर्भाग्य से, विशेष रूप से प्रोग्रामर पर लक्षित श्रेणी सिद्धांत पर कोई पाठ्य पुस्तकें नहीं लगती हैं।" इस तरह की एक "पाठ्य पुस्तक" अब प्रोग्रामर्स के लिए बार्टोज़ मिलवस्की की श्रेणी थ्योरी में कमोबेश मौजूद है । बार्टोज़ ने एक व्याख्यान श्रृंखला भी बनाई है ।
alx9r

30

मैं इसे छोटा और मीठा रखने की कोशिश करने जा रहा हूं। हास्केल कार्यक्रमों और श्रेणियों के कुछ वर्गों के बीच एक अनौपचारिक पत्राचार होता है, जिसे कुछ काम के साथ और अधिक औपचारिक बनाया जा सकता है। इस पत्राचार को करी-हावर्ड-लाम्बेक पत्राचार और संबंधित के रूप में जाना जाता है:

  1. श्रेणी की वस्तुओं के साथ हास्केल प्रकार
  2. AB f:AB
  3. प्रारंभिक वस्तुओं के साथ बीजगणितीय डेटाैटिप्स
  4. फ़ंक्शंस के साथ कन्स्ट्रक्टर टाइप करें
  5. आदि

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

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


1
"उन धारणाओं के साथ आते हैं जो गणितज्ञों के लिए उपयोगी हैं, लेकिन हास्केल प्रोग्रामिंग के अभ्यास में भी व्यापक हैं" - क्या आप एक उदाहरण दे सकते हैं, या इसके लिए बहुत अधिक पूर्व ज्ञान की आवश्यकता होगी?
राफेल

7
@ राफेल: मोनाड्स। तीर। अल्जेब्रास। Coalgebras।
डेव क्लार्क

6
फ़नकार, द्वंद्व, क्लेसीली श्रेणी, योनेदा लेम्मा ...
कोड़ी

4
कार्टेसियन बंद श्रेणियां। Currying।
डेव क्लार्क

2
"सॉफ्टवेयर इंजीनियरों के लिए श्रेणी थ्योरी का परिचय", cs.toronto.edu/~sme/pretations/cat101.pdf
व्लादिमीर

29

@AJed सलाह को ध्यान में रखते हुए, मैं आपके कथन को बदलने की सलाह देता हूं

I want to learn category theory so I can become better at Haskell.

इसके सिर पर: अपने प्रोग्रामिंग अंतर्ज्ञान पर हास्केल सीखें। एक बार जब आप एक एफपी गुरु होते हैं, तो श्रेणी सिद्धांत (यदि आप अभी भी देखभाल करते हैं) को चुनना आसान हो सकता है।

व्यापक गणितीय शिक्षा (समूह, अंगूठियां, मॉड्यूल, वेक्टर रिक्त स्थान, टोपोलॉजी आदि) वाले किसी व्यक्ति के लिए श्रेणी सिद्धांत सरल है। इस पृष्ठभूमि को खोना, श्रेणी सिद्धांत लगभग अभेद्य है। श्रेणी के सिद्धांत की सुंदरता यह है कि यह बहुत अधिक प्रतीत होने वाली असंबंधित चीजों को एकीकृत करता है (उदाहरण के लिए भुलक्कड़ फंक्शंस के बाएं बिंदुओं में नि: शुल्क समूह, सार्वभौमिक आवरण अलजेब्रा, स्टोन-सीएच कॉम्पैक्टीसिटी, समूहों के abelianisations ...) शामिल हैं, और इसलिए जटिलता कम कर देता है। लेकिन अगर आप उन कई उदाहरणों से परिचित नहीं हैं जिन्हें श्रेणी सिद्धांत एकीकृत करता है, तो श्रेणी सिद्धांत जटिलता की एक अतिरिक्त परत है जो आपके जीवन को कठिन बना देता है।

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


7
नहीं, सच कहूं तो हास्केल वास्तव में यह है कि अधिकांश अन्य प्रोग्रामिंग भाषाओं से अलग, इस बात के लिए कि अतीत की पूर्व धारणाओं को प्राप्त करना अक्सर सबसे बड़ी चुनौती होती है। अनुभवी सॉफ्टवेयर डेवलपर्स को उन लोगों की तुलना में अधिक परेशानी होती है जिन्होंने पहले कभी प्रोग्राम नहीं किया है।
सीए मैककेन

5
@CAMcCann मैं मानता हूं कि कुछ अनुभवी कार्यक्रमों को उदाहरण के लिए जावा या सी # से हास्केल तक ले जाने में कठिन समय लगता है, लेकिन मुझे नहीं लगता कि यह इसलिए है क्योंकि हास्केल के बारे में मौलिक रूप से कुछ अलग है। मुझे लगता है कि यह भाग में है क्योंकि यह अलग प्रतीत होता है। हास्केल की सराहना करने के लिए आपको श्रेणी सिद्धांत सीखने की आवश्यकता है, इस विचार ने शायद कुछ अनुभवी सॉफ़्टवेयर डेवलपर्स को हास्कल महारत हासिल करने से रोक दिया है। (Cf. क्यों F # में भिक्षु नहीं हैं।) मुझे निश्चित रूप से कई हास्केल विशेषताओं के बारे में सोचना मुश्किल है जो अन्य भाषाओं में समानताएं नहीं रखते हैं।
मार्टिन बर्जर

5
श्रेणी थ्योरी जानने से थोड़ी मदद मिल सकती है, लेकिन यह सब बहुत ज्यादा नहीं है, और यह सीखना हास्केल सीखने की तुलना में निश्चित रूप से बहुत कठिन है। अधिकांश भाषाओं (शुद्धता, गैर-सख्त मूल्यांकन, प्रकार प्रणाली) की तुलना में बहुत मौलिक अंतर हैं, और सभी सीटी शब्दों को हटाने से ये किसी भी अधिक परिचित नहीं हैं। दूसरी ओर, हास्केल सीखना कुछ लोगों को कुछ सीटी सीखने के लिए प्रेरित करता है, क्योंकि उधार लिए गए विचार उपयोगी होते हैं । एफ # के सीमित प्रकार की प्रणाली और पूरी तरह से अच्छे मौजूदा शब्द का परिहार दोष है, सुविधाएँ नहीं।
सीए मैक्कैन

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

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

13

एक छोटा जवाब: नहीं [लेकिन यह केवल एक राय है]

हास्केल में अच्छा बनने के लिए श्रेणी थ्योरी या किसी अन्य सैद्धांतिक डोमेन पर न जाएं। कार्यात्मक प्रोग्रामिंग तकनीकों को जानें, जैसे कि पूंछ पुनरावृत्ति, मानचित्र, कम करना, और अन्य। जितना हो सके उतना कोड पढ़ें। जितना हो सके उतने विचारों को लागू करें। यदि आपके पास समस्याएं हैं, तो पढ़ें और पढ़ें।

यदि आप हास्केल और अन्य कार्यात्मक प्रोग्रामिंग प्रतिमानों को सीखने के लिए एक अच्छा सैद्धांतिक संदर्भ चाहते हैं, तो इस पर एक नज़र डालें: लैम्ब्डा कैलकुलस, ग्रेग माइकेलसन (ऑनलाइन उपलब्ध) के माध्यम से कार्यात्मक प्रोग्रामिंग का परिचय। ... इसी तरह की अन्य किताबें हैं।


1
मैं इस पर एक भौं उठाता हूं, क्योंकि "पूंछ पुनरावृत्ति" आमतौर पर आलस्य के कारण हास्केल में प्रोग्रामिंग के लिए महत्वपूर्ण नहीं है। फिर भी, "करके सीखो" लगभग हमेशा अच्छी सलाह है।
दान बर्टन

@DanBurton .. दिलचस्प अवलोकन। मान लें कि, हास्केल के बजाय, इरलांग या योजना सीखें :)। [मैं हास्केल का विशेषज्ञ नहीं हूं, मैंने इसे सिर्फ इसलिए उठाया क्योंकि यह बहुत अच्छा लगता है]
AJed


0

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

वैसे, मैं यहाँ होने के लिए आपके उद्देश्य के लिए एक बहुत अच्छी तरह से शुरू करने का सुझाव देता हूं ।


यह वास्तव में इस सवाल का जवाब नहीं देता है: क्या यह कार्यात्मक प्रोग्रामिंग सीखने के लिए उपयोगी है? हास्केल के लिए श्रेणी सिद्धांत में कौन से विषय उपयोगी हैं?
डेविड रिचरबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.