दुर्भाग्य से "ध्रुवीयता" प्रकार के सिद्धांत में कुछ हद तक अतिभारित अवधारणा है। "पॉजिटिव पोज़िशन" और "निगेटिव पोज़िशन" ध्रुवीयता की एक अलग धारणा को संदर्भित करता है, जो कि फोकस / ध्रुवीकरण के साथ बॉब की बात है।
आपका मतलब
जब आप एक आगमनात्मक प्रकार को परिभाषित कर रहे हैं तो आप नियमों की एक श्रृंखला देते हैं जो आपके द्वारा परिभाषित किए जाने वाले प्रकार के संचालन के अनुरूप हैं। उदाहरण के लिए, आप कह सकते हैं कि Nat
कुछ है
- एक कीमत
zero : Nat
- एक समारोह
suc : Nat -> Nat
और फिर उम्मीद करते हैं कि Nat
उन सभी मूल्यों को शामिल किया जा सकता है जो बार-बार suc
दूसरे Nat
एस पर लागू करने और शामिल करने से उत्पन्न हो सकते हैं zero
। इस आगमनात्मक निर्माण के अनुरूप हमें Nat
एस भर में एक पुनरावृत्ति सिद्धांत मिलता है जो इस तथ्य के आधार पर काम करता है कि कोई भी Nat
उन निर्माणकर्ताओं द्वारा उत्पन्न होता है।
rec : A -> (A -> A) -> Nat -> A
ताकि
rec Z S zero = zero
rec Z S (suc n) = S (rec Z S n)
हालाँकि, नियम के रूप में हम जो लिख सकते हैं उस पर कुछ प्रतिबंध हैं। अन्यथा, हम नियमों की एक श्रृंखला लिख सकते हैं जिसके लिए पुनरावृत्ति सिद्धांत को उचित नहीं ठहराया जा सकता है। D
एक निर्माता के साथ "आगमनात्मक प्रकार" पर विचार करें
यहाँ पर एक पुनरावर्ती सिद्धांत नहीं है। और अच्छे कारण के लिए! यदि हमारे पास कुछ पुनरावर्तन सिद्धांत था, तो हम इसका उपयोग स्व-अनुप्रयोग के एक संस्करण को एनकोड करने के लिए कर सकते हैं और इसके साथ, गैर-समाप्ति। इसका अर्थ D
यह नहीं है कि "आगमनात्मक" कहा जा सकता है क्योंकि आगमनात्मक प्रकार परिमित निर्माण हैं जो बार-बार निर्माण करने वालों से उत्पन्न होते हैं!
इससे निपटने के लिए हम प्रतिबंधित करते हैं कि कैसे प्रकार के सिद्धांत में आगमनात्मक प्रकार पुनरावर्ती हो सकते हैं। विशेष रूप से, हम उन्हें "नकारात्मक स्थानों" में प्रदर्शित होने से रोकते हैं। यह उस ध्रुवीयता की धारणा है जिसके बारे में आप बात कर रहे थे। एक स्थिति की ध्रुवीयता इस प्रकार निर्धारित की जाती है,
- तर्क एक सकारात्मक स्थिति में शुरू होता है
- हर बार हम बाईं ओर एक तीर पर जाते हैं, ध्रुवता निकलती है
तो X
पहले दो में सकारात्मक और दूसरे दो में नकारात्मक है
X
Int -> X
X -> Int
(Unit -> X) -> Int
इस विचार को एक श्रेणी के सिद्धांत के प्रति पुनरावृत्ति के साथ उचित ठहराया गया है जहां एक प्रेरक प्रकार जिसके केवल पुनरावृत्त सकारात्मक हैं, एक सहसंयोजक फंतास को जन्म देता है। यह कैसे काम करता है और इसके दिलचस्प आ लंबा सा विवरण क्यों।
बॉब हार्पर का अर्थ
अपने ब्लॉगपोस्ट में हार्पर ध्रुवीयता के एक अलग अर्थ के बारे में बात कर रहे थे। यह ध्रुवीयता इस बात का संदर्भ है कि तर्क में विभिन्न संयोजनों को कैसे अर्थ दिया जाता है। विशेष रूप से, हम दो तरीकों से संयोजनों को वर्गीकृत कर सकते हैं
- सकारात्मक संयोजकों को परिभाषित किया जा सकता है कि उन्हें कैसे पेश किया जाए (उनके परिचय नियम)
- नकारात्मक संयोजकों को परिभाषित करके परिभाषित किया जा सकता है कि उनका उपयोग कैसे किया जाए (उनके उन्मूलन नियम)
प्रोग्रामिंग भाषा में, यह अच्छी तरह से आलसी और सख्त प्रकार के बीच के अंतर को पकड़ता है। एक सख्त प्रकार को इसके मूल्यों द्वारा परिभाषित किया गया है। एक आलसी को परिभाषित किया जाता है कि पैटर्न उन पर कैसे मेल कर सकता है। इसे ठीक से संभालने के लिए, हम 2 मुख्य निर्माणों के साथ एक भाषा को परिभाषित करते हैं, सकारात्मक प्रकार के निर्माण के तरीके और नकारात्मक प्रकारों को विघटित करने के लिए "स्पाइन"। हम इसका उपयोग सख्त और आलसी अभिकलन दोनों को एक भाषा में शामिल करने के लिए कर सकते हैं।
इसे बेहतर समझने के लिए, मैं आपको बॉब हार्पर की पुस्तक के अध्याय 38 का उल्लेख करता हूं ।