scala - निर्भर प्रकार प्रोग्रामिंग के साथ कहां से शुरू करें?




haskell agda (2)

(नोटिस: यह एक स्व विज्ञापन है)

मैं एक एग्डा ट्यूटोरियल लिख रहा हूं और मेरा प्राथमिक लक्ष्य लोगों को सैद्धांतिक पृष्ठभूमि के बिना आगाडा के साथ खेलने देना है।

यह ट्यूटोरियल आपकी अधिकांश समस्याओं का समाधान कर सकता है:

  • बाहरी संदर्भों के बिना आगाडा प्रोग्रामिंग को समझाने की कोशिश करता है
  • केवल माध्यमिक विद्यालय गणित की आवश्यकता है
  • प्रोग्रामिंग प्रथाओं को भी पढ़ाने की कोशिश करता है

यह विकास में है, लेकिन पहली छमाही तैयार है।

एक इडिस ट्यूटोरियल, एक एग्डा ट्यूटोरियल और कई अन्य ट्यूटोरियल स्टाइल पेपर और प्रारंभिक सामग्री है जो अभी तक सीखने वाली चीजों के संदर्भ में कभी नहीं है। मैं इन सभी के बीच में क्रॉलिंग कर रहा हूं और अधिकांश समय मैं गणितीय नोटेशन और नई शब्दावली के साथ अटक गया हूं, बिना किसी स्पष्टीकरण के अचानक दिखाई देता हूं। शायद मेरा गणित बेकार है :-)

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

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


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

हालांकि, गणित और तर्क भागों में मुझे कमी है।

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





idris