2011-10-28 15 views
5

मैंने कुछ फ़ंक्शंस को एक फ़ाइल में रखा है। मेरे पीसी पर मुझे इस फाइल को सहेजना चाहिए ताकि मैं आसानी से अपने कार्यों को लोड कर सकूं?मैं अपने हास्केल "मॉड्यूल" कहां से सहेजूं?

मैं विंडोज 64-बिट कंप्यूटर पर हास्केल प्लेटफ़ॉर्म का उपयोग कर रहा हूं।

+1

बादल में ...

उत्तर

9

मैं आमतौर पर एक ही निर्देशिका पेड़ में अपने मॉड्यूल डालता हूं, और पेड़ की मूल निर्देशिका में ghci शुरू करता हूं। फिर मॉड्यूल एक-दूसरे को आयात कर सकते हैं, और मैं आसानी से :load मॉड्यूल ghci पर इंटरैक्टिव रूप से कर सकता हूं।

$ ghci 

.... loading .... 

Prelude> :load directory/subdirectory/mymodule.hs 
+0

मेरे '' ghci' सी में है: \ Program Files (x86) \ Haskell Platform \ 2011.2.0.0 \ bin'। क्या मैं उन्हें यहां डालता हूं? – Dynamic

+0

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

+0

रुको ... क्या? क्या आपके पीसी पर आपके काम हैं? – Dynamic

2

आप अपने मॉड्यूल में कुछ विभिन्न परियोजनाओं से सुलभ हो चाहते हैं, मैं उनके लिए एक कबाल पैकेज बना सकते हैं और cabal install का उपयोग कर इसे स्थापित करने के लिए सलाह देते हैं। हैकेज को प्रकाशित करना आवश्यक नहीं है - cabal install बिना तर्क के .cabal फ़ाइल को वर्तमान निर्देशिका में ढूंढता है और संबंधित पैकेज को स्थापित करता है।

यदि आप अपने मॉड्यूल को एक ही परियोजना से सुलभ करना चाहते हैं - एक पदानुक्रमित फ़ोल्डर पेड़ में अपने स्रोतों को व्यवस्थित करने का सामान्य अभ्यास हास्केल पर भी लागू होता है। मुझे एक उदाहरण दिखा:

Hello/World.hs 
Foo/Bar.hs 
Quux.hs 
Hello.hs 

Hello/World.hs शीर्षक में module Hello.World where होना चाहिए। मुख्य मॉड्यूल में module Main होना चाहिए, लेकिन वास्तविक फ़ाइल नाम कुछ भी हो सकता है (उदा। Quux.hs)। Foo/Bar.hs में आप import Hello.World का उपयोग कर सकते हैं। जब आप Foo/Bar.hsghci में लोड करते हैं, तो वर्तमान निर्देशिका आपके पेड़ की जड़ होनी चाहिए, अन्यथा इसे Hello.World नहीं मिलेगा। आप ghci को फ़ाइल नामों के बजाय मॉड्यूल नाम पास कर सकते हैं: उदा। ghci हैलो। काम करेगा।

यहाँ प्रलेखन हैं:

http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html

http://haskell.org/ghc/docs/latest/html/users_guide/packages.html

+0

+1। Cabal वास्तव में अब उपयोग करने के लिए बहुत आसान है; इस उपयोग-मामले के लिए यह बहुत अधिक स्वचालित रूप से स्वचालित है ('कैबल इनिट' आपके लिए '। कैबल' फ़ाइल उत्पन्न करता है, और आपको केवल बिल्ड निर्भरताओं को भरने की आवश्यकता है) –

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