वास्तव में, विभिन्न व्याकरणिक नियमों के लिए ओकैमल व्याकरण में ब्रांड्स के कई उपयोग हैं, और इन सभी का उपयोग शुरूआत के साथ नहीं किया जा सकता है। पेरेंटेसिस और स्टार्ट..एंड को असंबद्धता के उद्देश्य के लिए अर्थशास्त्र-मुक्त अभिव्यक्ति डिलीमीटर के रूप में उपयोग किया जा सकता है (जैसा कि आपने कहा था, expr ::= '(' expr ')'
)। ()
भी unit
प्रकार के निरंतर प्रतिनिधित्व करता है और, एक पन के रूप में, begin end
भी अनुमति है - लेकिन यह अंतिम मैनुअल में निर्दिष्ट नहीं है, केवल कार्यान्वयन द्वारा लगातार समर्थित है।
लेकिन कोष्ठकों भी
- इस्तेमाल किया जा सकता पैटर्न परिसीमित करने के लिए:
Array.get
और Array.set
के लिए function (_::_)::_ -> ...
- वाक्यात्मक चीनी के रूप में: प्रकार एनोटेशन
(e : t)
दोनों भाव और पैटर्न में के लिए t.(i)
t.(i) <- e
- (इस है असंबद्ध delimiters का एक विशेष मामला नहीं है क्योंकि यह बिना किसी ब्रांड्स के वैध है)
- subtyping coercions के लिए:
(e :> t)
और (e : s :> t)
- लेबल पैटर्न यौगिकों:
fun ~(x:int) ..
और fun ?(x=10) ..
मॉड्यूल, हस्ताक्षर और कक्षा में विभिन्न संबंधित स्थान (coercions, एनोटेशन, आदि) में
- /वस्तुओं वाक्य रचना
के कुछ हिस्सों
इस प्रयोग से कोई भी के लिए बजाय प्रयोग किया begin..end कर सकते हैं, तो यह निश्चित रूप से begin
और )
end
व्यवस्थित साथ (जबकि बातचीत सही है) के साथ (
को बदलने के लिए मान्य नहीं होगा।
पैडेंटिक उत्तर के लिए खेद है, लेकिन सवाल स्वयं ही काफी सटीक था। मुझे यकीन नहीं है ..एंड हैंडलिंग ओकैमल व्याकरण का सबसे सुंदर हिस्सा है (जिसमें बहुत सारे मर्द हैं)। कोई यह चाहता है कि वे वास्तव में समकक्ष थे, लेकिन फिर (x : int)
के बजाय begin x : int end
लिखने पर जोर देने में थोड़ा सा बिंदु है।
कौन कहता है कि वाक्य रचनात्मक चीनी को गैर-तुच्छ होना चाहिए? वैसे भी इसका क्या मतलब है? मैं निस्संदेह सिंटैक्टिक चीनी के रूप में स्टार्ट-एंड वर्गीकृत करता हूं। –
@AndreasRossberg यदि ओकैमल कंपाइलर का अनुवाद 'प्रारंभ ..' से '(..)' आंतरिक रूप से होता है, तो पूर्व सिंटैक्टिक चीनी होगी। संकलक किसी भी सार्थक अर्थ में ऐसा नहीं करता है। इसके बजाय, दोनों निर्माण एएसटी के निर्माण में निहित रूप से एन्कोड किए गए हैं। ** किसी का अनुवाद दूसरे में नहीं किया जाता है। ** –
@AndreasRossberg मुझे सांस्कृतिक मतभेदों और सभी के बारे में पता है, लेकिन मुझे आपकी टिप्पणियां थोड़ा अनुत्पादक मिलती हैं। चूंकि आप असहमत होने पर टिप्पणी कर रहे हैं, उदाहरण के लिए, आप अपने दृष्टिकोण को थोड़ा बेहतर तरीके से समझाने का प्रयास कर सकते हैं, उदाहरण के लिए, "आप क्यों कहते हैं कि आप Ocaml में देशी कोड को अलग से संकलित नहीं कर सकते हैं? निःसंदेह तुमसे हो सकता है।"? मुझे, उस विशेष मामले में, आपको उस लिंक का पालन करने के लिए नहीं कहना चाहिए जो मैंने पहले ही प्रदान किया है या वहां जो कहा गया है उसे दोहराने के लिए। –