भरोसेमंद रूप से टाइप की गई प्रोग्रामिंग में, डेटा को विघटित करने और पुनरावृत्ति करने के दो मुख्य तरीके हैं:
- आश्रित पैटर्न मिलान : फ़ंक्शन परिभाषाएँ कई खंडों के रूप में दी जाती हैं। एकीकरण यह सुनिश्चित करता है कि सभी छोड़े गए मामले असंभव हैं, और एक बाहरी सॉल्वर सुनिश्चित करता है कि पुनरावृत्ति अच्छी तरह से स्थापित हो।
- एलिमिनेटर : प्रत्येक आगमनात्मक डेटाटाइप में एक संबंधित स्थिर , जो एक प्रेरण सिद्धांत के रूप में और पुनरावर्ती कार्य के रूप में कार्य करता है जो प्रकार मूल्यों को विघटित करता है । ये अधिक क्रियात्मक हैं, लेकिन कुल होने का लाभ है (सभी मामले ई डी द्वारा कवर किए गए हैं ) और निर्माण द्वारा समाप्त हो रहे हैं।
मैं आम डेटाटाइप्स के लिए eliminators देखा है, की तरह , जहां निरसक मूल रूप से गणितीय प्रेरण, या है एल मैं एस टी , जहां निरसक मूल रूप से एक गुना है।
मैं निर्भर पैटर्न मिलान पर कई पत्र पढ़ रहा हूं, और कई प्रकार के सिद्धांतों को संदर्भित करते हैं जिसमें डेटाटिप्स को परिभाषित किया जा सकता है, और सिद्धांत द्वारा निष्कासन प्रदान किए जाते हैं। उदाहरण के लिए, निर्भर प्रतिमान मिलान का वर्णन यह वर्णन करता है कि कैसे UTT को हटाने के आधार पर किया जाता है, और पैटर्न मिलान को स्वयंसिद्ध की उपस्थिति में उन्मूलन में कैसे बदला जा सकता है । मेरी समझ यह है कि, एक डेटाटाइप को परिभाषित करने के बाद, सिद्धांत एलिमिनेटर प्रदान करता है।
जो मैंने नहीं पाया है (या कम से कम, अगर मैंने इसे देखा है तो मान्यता प्राप्त नहीं है) एक अच्छा वर्णन है कि कोई कैसे निष्कासन को प्राप्त कर सकता है, उनके प्रकार और उनके शब्दार्थ दोनों।
क्या कोई मुझे एक संदर्भ के लिए इंगित कर सकता है जो बताता है कि कैसे एक डेटाटाइप की परिभाषा से एक एलिमिनेटर प्राप्त कर सकता है?
fix
और match
। मेरे पास कोई संदर्भ नहीं है, लेकिन मुझे पता है कि मैंने इस बारे में कुछ पढ़ा है कि यह एलिमिनेटर कैसे उत्पन्न होता है। cs.stackexchange.com/questions/104/… ब्याज की हो सकती है।
T
, Coq एक प्रेरण सिद्धांत को परिभाषित करता है T_ind
जो एक आश्रित उन्मूलनकर्ता है। इसे पुनरावर्तन और पैटर्न मिलान के संदर्भ में परिभाषित किया गया है, लेकिन आप सिद्धांत रूप में इसे एक ही प्रकार के (समान शब्दार्थ के साथ) एक नए स्थिरांक के रूप में मान सकते हैं।