2015-02-22 7 views
5

मैं हास्केल का बुनियादी ज्ञान है (इसलिए मुझे माफ कर दो मेरे सवाल Haskellers यहाँ तुच्छ लग रहा है) और हाल ही में हास्केल के वाक्य रचना में देख की है। Haskell 2010 report में केवल एक ही स्थान पर उस कीवर्ड "प्रकार" प्रयोग किया जाता है है:इस हास्केल कोड के लिए व्याकरण नियम क्या है?

topdecl ::= "type" simpletype "=" type 

और के रूप में देखा जा सकता है, वहाँ हमेशा एक "=" की आवश्यकता है।

type Key m :: * 

TrieMap.hs लाइन 61

जो नियम का पालन नहीं करता से लिया: एक हास्केल फ़ाइल में, मैं कोड के इस टुकड़े को देखते हैं। मुझे संदेह है कि यह एक जीएचसी एक्सटेंशन है या कुछ समान है। क्या कोई मुझे बता सकता है कि कोड के इस टुकड़े पर व्याकरण नियम किस प्रकार है? बीटीडब्ल्यू, मुझे एक्सटेंशन के लिए व्याकरण नियम नहीं मिला और उनमें से कई को अनुमान लगाया गया था, क्या वहां कहीं दस्तावेज है?

उत्तर

7

कि एक associated type family declaration, TypeFamilies विस्तार का हिस्सा है।

यह मूल रूप से एक वर्ग घोषणा के अंदर प्रयोग किया जाता है बताने के लिए वर्ग एक प्रकार यह के प्रत्येक उदाहरण के लिए जुड़े है।

मुझे किसी भी जगह को याद नहीं है जो विस्तार के लिए बीएनएफ व्याकरण को अच्छी तरह से रखता है, हालांकि मैंने इसे एक बार GHC's Happy grammar अपने भंडार में पाया था।

+1

धन्यवाद! मुझे लगता है कि हैप्पी के व्याकरण से मैं यह समझ सकता हूं कि क्या हो रहा है, लेकिन इन एलएएलआर व्याकरण इतने दर्दनाक हैं। बहुत आश्चर्य की बात है कि शिक्षाविदों द्वारा डिजाइन की गई भाषा में इसके एक्सटेंशन के लिए बीएनएफ व्याकरण नहीं है! – Wickoo

संबंधित मुद्दे