2013-03-01 6 views
7

मैं असली दुनिया हास्केल में कुछ कोड को संकलित करने के कोशिश कर रहा हूँ।रियल वर्ल्ड हास्केल कोड संकलित नहीं है? अध्याय 24. LineCount.hs -

मैं कोड में कोई परिवर्तन नहीं किया है।

हालांकि, जब मैं करता हूँ:

MapReduce.hs:6:7: Not in scope: `rnf' 

क्या मैं गलत कर रहा हो सकता है:

ghc -O2 --make -threaded LineCount.hs 

(पुस्तक में निर्देश दिए के रूप में), मैं संदेश मिलता है?

एक त्वरित खोज दिखाया संकुल समानांतर और अतीत में सख्त-संगामिति के साथ कुछ परेशानी थी, और है कि उन्हें फिर से स्थापित करने के मुद्दे को ठीक होगा। हालांकि, मैंने कोशिश की और यह काम नहीं किया। इसके अलावा, यह उल्लेख किया गया है कि 2010 में कुछ समस्या तय की गई थी: https://groups.google.com/forum/?fromgroups=#!msg/happs/gOieP4xfpNc/nrasm842JlUJ

नोट: मुझे उसी अध्याय में अन्य फ़ाइलों को संकलित करते समय कई अन्य त्रुटियां मिलती हैं। उदाहरण के लिए, Strat.hs संकलित करने पर मुझे मिलता है: मॉड्यूल Control.Parallel.Strategies' does not export parZipWith '। LineChunks.hs संकलित करने पर मुझे मिलता है: मॉड्यूल Control.Parallel.Strategies' does not export आरएनएफ '।

सच में, एक नौसिखिया हास्केल प्रोग्रामर मैं मुसीबत में पड़ जाने की उम्मीद एक बार मैं कोड को संशोधित करने शुरू कर दिया के रूप में - लेकिन मैं एक पुस्तक से कोड के साथ परेशानी है के लिए उम्मीद नहीं थी!

+0

आपको 'Control.DeepSeq' की आवश्यकता हो सकती है http://www.haskell.org/hoogle/?hoogle=rnf – luqui

+0

मैंने अभी इंस्टॉल किया है, लेकिन यह कुछ भी नहीं बदला है। –

+0

@Clark आपके प्रश्न का उत्तर नहीं हुआ, तो सवाल में कोड पोस्ट करें। –

उत्तर

10

समारोह नहीं रह गया है rnf कहा जाता है। इसे अब rdeepseq कहा जाता है। बस इसे बदलें। :)

आप "समानांतर रणनीतियों हैकेज नियंत्रण" या here पर जाकर parallel पैकेज ऑनलाइन की सामग्री पा सकते हैं।

+0

यह काम किया! आपका बहुत बहुत धन्यवाद! यह पहला हास्केल कोड था जिसे मैंने कभी संकलित किया है और यह एक खराब शुरुआत नहीं हो सकती है। : पी –

+1

कोई समस्या नहीं! हास्केल बहुत मजेदार हो सकता है। कीप आईटी उप! –

+1

क्या कोई आरडब्ल्यूएच इरेटा पेज कहीं है? एमटीएल 1.x -> 2.0 संक्रमण ने मुझे कुछ समय के लिए ट्रैक से फेंक दिया। – yatima2975

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