बहुत बुनियादी प्रश्न के लिए खेद है: जीएचसीआई में, import Library.Name
और :m +Library.Name
के बीच कोई अंतर है? वे बराबर लगते हैं, लेकिन मुझे लगता है कि वैकल्पिक वाक्यविन्यास का एक कारण है।हास्केल लाइब्रेरी आयात वाक्यविन्यास
उत्तर
आप स्रोत कोड में import
शामिल करेंगे, जो अधिक सामान्य है, जबकि :m
एक ghci-specific कमांड (सुविधा के लिए) है।
आप एकाधिक मॉड्यूल लोड करने के लिए ghci> :m + Module1 ... ModuleN
का उपयोग कर सकते हैं। मॉड्यूल को अनलोड करने के लिए +
के बजाय -
का उपयोग करें। क्योंकि ghci
इंटरैक्टिव है, मैं :m
तक चिपक जाता हूं, जब तक कि आपका वर्कफ़्लो न हो: अपनी .hs
फ़ाइल संपादित करें, इसे सहेजें, और इसे पुनः लोड करें। फिर import
अधिक उपयुक्त होगा (और इसमें अधिक सुविधाएं हैं जैसे qualified imports)।
import
निर्देश भी काम करेगा यदि आप बाद में उदाहरण के लिए ghc
का उपयोग करके प्रोग्राम को संकलित करने का निर्णय लेते हैं। आप चुनिंदा केवल विशिष्ट कार्यों को आयात कर सकते हैं: import Data.List (sort)
केवल क्रमबद्ध आयात करेगा, इसलिए नामस्थान को कम प्रदूषित किया जाता है।
आप सही है कि import Module
और :module + Module
समान हैं कर रहे हैं, लेकिन वहाँ :module
(इसके बाद से संक्षिप्त :m
) वाक्य रचना के लिए कुछ कारण हैं।
यह पुराना है। जीएचसीआई वास्तव में
IO
do
ब्लॉक के अंदर ही होता था; अब यह भाषा के हर हिस्से का समर्थन करता है, इसलिए हमimport
एस कर सकते हैं। (यह GHCi 6.6.x didn't supportimport
, लेकिन GHCi 6.8.1 did तरह लग रहा है, हम GHCi 7.4.1 जब तक उच्च-स्तरीय घोषणाओं के लिए पूरा समर्थन नहीं मिला।)यह आप एक साथ कई मॉड्यूल आयात करने देता है।
:m + M1 M2 M3
import M1
,import M2
, औरimport M3
प्रत्येक नई लाइन पर लिखने जैसा ही है।यह आपको मॉड्यूल को आयात करने देता है:
:m - M
वर्तमान में प्रॉम्प्ट पर मौजूद होने वालेM
की सामग्री को हटा देगा।यह आपको एक व्याख्याित मॉड्यूल आयात करने देता है ताकि आप पूरे स्कोप देख सकें। यह तब होता है जब आप
:load File.hs
; आप पाते हैं कि आप मॉड्यूल*File
में हैं, और उदा। सब कुछ देखें जोFile
आयात और यहां तक कि वह सब कुछ जो निर्यात नहीं करता है। यदि आपके पास एक व्याख्याित मॉड्यूलMI
लोड किया गया है, तो आपM1
औरM2
को सामान्य तरीके से दायरे में लाने के लिए:m + M1 *MI M3
का उपयोग कर सकते हैं, औरMI
को विशेष तरीके से दायरे में डाल सकते हैं।योग्य आयात:
पूर्णता के लिए, हालांकि,
import
वाक्य रचना हमें तीन चीजें हैं जो:m
नहीं की पेशकश करता है।import qualified Data.Map as M
करने में सक्षम होने के लिए यह बहुत अच्छा है और का उपयोगData.Map.lookup
करने या अस्पष्टता त्रुटियों को भुगतने के लिए करें। (ध्यान दें कि स्थापित हर पैकेज जीएचसीआई में पूरी तरह से योग्य है, इसलिएimport qualified Module
अकेले आपको कुछ भी नहीं खरीदता है।)आयात सूचियां। यहां तक कि यदि मेरे पास
Data.Map
सेM
के साथ योग्यता है, तो भी मैं टाइप को अयोग्यता में लाने के लिएimport Data.Map (Map)
कर सकता हूं।आयात
hiding
। उपरोक्त के विपरीत; शायद मैं अपना खुद का सॉर्टिंग दिनचर्या लिख रहा हूं, इसलिए मैंimport Data.List hiding (sort)
कर सकता हूं।
आप §2.4.5, "What's really in scope at the prompt?", in the GHC (7.6) user's guide भी देख सकते हैं।
के बजाय '-' का उपयोग करते हैं तो पूरी तरह से उत्तर के लिए धन्यवाद; अगर मैंने पहले से ही "हल" धागा चिह्नित नहीं किया था, तो मैंने इसे चुना होगा। – planarian
- 1. आयात वाक्यविन्यास वेबपैक
- 2. हास्केल मॉड्यूल आयात करना
- 3. हास्केल आयात मॉड्यूल
- 4. हास्केल खाली आयात सूची()
- 5. हास्केल `ncurses` लाइब्रेरी
- 6. आयात के बीच अंतर प्रतिक्रिया और आयात {घटक} वाक्यविन्यास
- 7. हास्केल सार वाक्यविन्यास अभिव्यक्ति की गतिशील लोडिंग
- 8. हास्केल रिकॉर्ड वाक्यविन्यास और प्रकार वर्ग
- 9. हास्केल आरईएसटी/जीडीएटीए एपीआई लाइब्रेरी
- 10. हास्केल कमांडलाइन तर्क हैंडलिंग लाइब्रेरी
- 11. हास्केल लाइब्रेरी सिम्पी की तरह?
- 12. हास्केल में पैकेज, मॉड्यूल और आयात
- 13. हास्केल मॉड्यूल
- 14. किसी ऐप में मेरी एंड्रॉइड लाइब्रेरी को आयात करना लाइब्रेरी
- 15. 2 डी ड्राइंग के लिए हास्केल लाइब्रेरी
- 16. हास्केल आरएसएस, मेल और एक्सएमएल लाइब्रेरी विकल्प
- 17. क्या विम का हास्केल वाक्यविन्यास टूटा हुआ है?
- 18. सीएमके ने लाइब्रेरी व्यवहार आयात किया
- 19. लाइब्रेरी कैसे आयात करें: Coq.Arith.PeanoNat Coq में?
- 20. एंड्रॉइड स्टूडियो - सरल-एक्सएमएल लाइब्रेरी आयात करना
- 21. एंड्रॉइड स्टूडियो ग्रेडले और लाइब्रेरी आयात
- 22. .jar एंड्रॉइड लाइब्रेरी Xamarin प्रोजेक्ट में आयात
- 23. हास्केल
- 24. हास्केल
- 25. कोई जावा मार्कडाउन लाइब्रेरी github वाक्यविन्यास का समर्थन करता है?
- 26. हास्केल
- 27. हास्केल
- 28. हास्केल
- 29. हास्केल
- 30. हास्केल
तो है: एम बस संक्षेप में? – planarian
यह मेरे लिए होता है कि: एम आयात किए जाने के बाद पुस्तकालयों के * हटाने * को भी अनुमति देता है। – planarian
हां, यदि आप '+' – jev