मुझे कन्स्ट्रक्टर के सिद्धांतों के बारे में समझने में समस्या हो रही है और यह कैसे काम करता है।कोक में एक निर्माता क्या है?
उदाहरण के लिए, Coq में, हम इस तरह प्राकृतिक संख्या को परिभाषित करने सिखाया गया है:
Inductive nat : Type :=
| O : nat
| S : nat -> nat.
और बताया गया है कि S
एक निर्माता है, लेकिन यह वास्तव में क्या मतलब है?
अगर मैं तो कार्य करें:
Check (S (S (S (S O)))).
मुझे लगता है कि यह 4
और के प्रकार nat
है मिलता है।
यह कैसे काम करता है, और कोक कैसे जानता है कि (S (S (S (S O))))
4
का प्रतिनिधित्व करता है?
मुझे लगता है कि इसका उत्तर कोक में कुछ बेहद चालाक पृष्ठभूमि जादू है।
की बहुत-मुद्रण '(एस (एस (एस (SO))))' 4' सिर्फ एक है के रूप में ' सुविधा है कि आपको विचलित नहीं करना चाहिए। यदि आप उस बिंदु पर हैं जहां आप एक कन्स्ट्रक्टर की भावना महसूस करना चाहते हैं, तो अपने स्वयं के प्रकार 'प्राकृतिक' को कन्स्ट्रक्टर 'जेड' (शून्य के लिए) और 'एन' (अगले के लिए) के साथ परिभाषित करें। तब जादू कुछ भी नहीं होगा। –