मैं सामान्य रूप से सबसे अधिक भाषाओं मैं में कार्यक्रम में नेमस्पेस (योग्य मॉड्यूल के नाम) का उपयोग कर के बाद से यह बहुत अच्छा है एक नज़र जहां एक निश्चित पहचानकर्ता आया पर पता करने के लिए की एक फर्म आस्तिक हूँ के साथ बदसूरत देख करते से। हास्केल में प्रीलूड फ़ंक्शंस के साथ सामान्य नाम संघर्ष से बचने का अतिरिक्त लाभ भी है।मैं इन्फ़िक्स प्रतीकों से कैसे निपटते योग्य नामों
हालांकि, मैं एक इन्फ़िक्स प्रतीक (या अन्य छोटे, डीएसएल-y पहचानकर्ता) पर एक नाम स्थान डाल करने के लिए होने की तरह लग रहा है वास्तव में अजीब तो मैं मान पुनर्निर्यात करने के लिए परीक्षा रहा हूँ लग रहा है, इस तरह:
import qualified Data.Sequence as Seq
(|>) = (Seq.|>)
(<|) = (Seq.<|)
क्या अब मुझे परेशान कर रहा है कि
मैन्युअल रूप से मूल्यों का पुन: निर्यात करना उबाऊ बॉयलरप्लेट जैसा लगता है।
मैन्युअल मूल्यों reexporting मौजूदा मॉड्यूल प्रणाली के आसपास चला जाता है और (मैं अभी तक भर में नहीं आया था और संभवत: अन्य बातों के)
import qualified Data.Sequence as Seq (:>) = (Seq.:>) --gives me a parse error: --"Not in scope: data constructor `:>'"
मैं कैसे करूँ डेटा कंस्ट्रक्टर्स के साथ काम नहीं लगता है इंफिक्स प्रतीकों और नेमस्पेसिंग को मेल करें? क्या मुझे बस छोड़ देना चाहिए और सबकुछ नाम देना सीखना चाहिए? क्या नेमस्पेसिंग और प्रतीकों के संबंध में हास्केल सर्वोत्तम प्रथाओं को स्थापित किया गया है?
import Data.Sequence ((|>), (<|), ViewR ((:>)))
import qualified Data.Sequence as Seq
यह केवल :>
, |>
और <|
अयोग्य आयात करेगा, और योग्य छोड़ देगा:
जब मैं इसे आज़माता हूं, तो मुझे संकलन के दौरान निम्न त्रुटि मिलती है: 'जो कुछ भी' अनावश्यक 'का आयात होता है। क्या आपको यह भी मिलता है? क्या चेतावनी से छुटकारा पाना संभव है? – VF1