प्रकार के सिद्धांत में "सकारात्मक स्थिति" और "नकारात्मक स्थिति" का अर्थ?


10

प्रकार के सिद्धांत के संदर्भ में "सकारात्मक स्थिति में" और "नकारात्मक स्थिति में" का क्या अर्थ है?

विषय पर बॉब हार्पर के ब्लॉग पोस्ट से मुझे केवल एक ही बात समझ में आई कि टाइप थ्योरी में इस अर्थ में ध्रुवता और तर्क में ध्रुवता के बीच एक संबंध है, लेकिन मुझे नहीं पता कि वह संबंध क्या है।

जवाबों:


9

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

आपका मतलब

जब आप एक आगमनात्मक प्रकार को परिभाषित कर रहे हैं तो आप नियमों की एक श्रृंखला देते हैं जो आपके द्वारा परिभाषित किए जाने वाले प्रकार के संचालन के अनुरूप हैं। उदाहरण के लिए, आप कह सकते हैं कि 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 : (D -> D) -> D

यहाँ पर एक पुनरावर्ती सिद्धांत नहीं है। और अच्छे कारण के लिए! यदि हमारे पास कुछ पुनरावर्तन सिद्धांत था, तो हम इसका उपयोग स्व-अनुप्रयोग के एक संस्करण को एनकोड करने के लिए कर सकते हैं और इसके साथ, गैर-समाप्ति। इसका अर्थ Dयह नहीं है कि "आगमनात्मक" कहा जा सकता है क्योंकि आगमनात्मक प्रकार परिमित निर्माण हैं जो बार-बार निर्माण करने वालों से उत्पन्न होते हैं!

इससे निपटने के लिए हम प्रतिबंधित करते हैं कि कैसे प्रकार के सिद्धांत में आगमनात्मक प्रकार पुनरावर्ती हो सकते हैं। विशेष रूप से, हम उन्हें "नकारात्मक स्थानों" में प्रदर्शित होने से रोकते हैं। यह उस ध्रुवीयता की धारणा है जिसके बारे में आप बात कर रहे थे। एक स्थिति की ध्रुवीयता इस प्रकार निर्धारित की जाती है,

  1. तर्क एक सकारात्मक स्थिति में शुरू होता है
  2. हर बार हम बाईं ओर एक तीर पर जाते हैं, ध्रुवता निकलती है

तो Xपहले दो में सकारात्मक और दूसरे दो में नकारात्मक है

X
Int -> X
X -> Int
(Unit -> X) -> Int

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

बॉब हार्पर का अर्थ

अपने ब्लॉगपोस्ट में हार्पर ध्रुवीयता के एक अलग अर्थ के बारे में बात कर रहे थे। यह ध्रुवीयता इस बात का संदर्भ है कि तर्क में विभिन्न संयोजनों को कैसे अर्थ दिया जाता है। विशेष रूप से, हम दो तरीकों से संयोजनों को वर्गीकृत कर सकते हैं

  • सकारात्मक संयोजकों को परिभाषित किया जा सकता है कि उन्हें कैसे पेश किया जाए (उनके परिचय नियम)
  • नकारात्मक संयोजकों को परिभाषित करके परिभाषित किया जा सकता है कि उनका उपयोग कैसे किया जाए (उनके उन्मूलन नियम)

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

इसे बेहतर समझने के लिए, मैं आपको बॉब हार्पर की पुस्तक के अध्याय 38 का उल्लेख करता हूं ।


क्षमा करें, @jozefg, मैंने अवधारणा को समझा लेकिन मुझे समझ नहीं आया कि यह कैसे देखा जाए कि कोई प्रकार केवल सकारात्मक स्थिति पर दिखाई देता है या नहीं। क्या आप कुछ और निर्दिष्ट कर सकते हैं, और कुछ और उदाहरण दे सकते हैं?
पॉलोटरेन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.