हास्केल में टाइप-लेम्बर्ड एब्स्ट्रैक्शन क्यों नहीं है?


22

क्या इसके लिए कुछ सैद्धांतिक कारण हैं (जैसे कि प्रकार की जाँच या प्रकार का अनुमान असाध्य हो जाएगा), या व्यावहारिक कारण (ठीक से लागू करने के लिए बहुत मुश्किल)?

वर्तमान में, हम चीजों को इस newtypeतरह से लपेट सकते हैं

newtype Pair a = Pair (a, a)

और फिर है Pair :: * -> *

लेकिन हम ऐसा कुछ नहीं कर सकते λ(a:*). (a,a)

(कुछ भाषाएँ हैं जो उनके पास हैं, उदाहरण के लिए, स्काला करता है ।)


4
एक प्रकार के प्रकार के सिस्टम को उपयोग में लेने से अन्य प्रकार के सिस्टम को बाहर कर देता है क्योंकि पूरी चीज को सुसंगत बनाने की आवश्यकता होती है। टाइप थ्योरी
लैंबडा

जवाबों:


17

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

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