2015-11-04 9 views
6

मैं हास्केल के लिए नया हूँ और मेरी किताब से निम्न उदाहरण कोड को चलाने के लिए कोशिश कर रहा हूँ:हास्केल त्रुटि: बाधा में गैर प्रकार-चर तर्क: अंक (एक -> एक -> एक -> एक)

पूरी फ़ाइल:

-- my name 

splitAt1 :: [a] -> ([a], [a]) 
splitAt1 xs = (take 2 xs, drop 2 xs) 

मैं लाइन चलाकर परीक्षण कर रहा हूँ:

splitAt1 [1 2 3 4] 

विचार है कि इनपुट सरणी सूचकांक 2. हालांकि पर दो सरणियों में विभाजित है, मैं हो रही है निम्नलिखित त्रुटि:

Non type-variable argument 
    in the constraint: Num (a -> a -> a -> a) 
(Use FlexibleContexts to permit this) 
When checking that ‘it’ has the inferred type 
    it :: forall a a1 a2 a3. 
     (Num a1, Num a2, Num a3, Num (a1 -> a2 -> a3 -> a)) => 
     ([a], [a]) 

क्या कोई मुझे त्रुटि संदेश को डीकोड करने में मदद कर सकता है और शायद कोड के साथ क्या गलत है?

+1

क्या यह कोड है? जीएचसी का क्या संस्करण? ऐसा प्रतीत नहीं होता है कि यह इसे पुन: उत्पन्न करने में सक्षम हो सकता है: http://rextester.com/YLAV57098 –

+0

हां, यह सब कोड है। यह संस्करण 7.10.2 है। – jblakeley

+1

कोड 7.10.2 के साथ मेरे लिए ठीक काम करता है। क्या आप शायद अपनी पूरी फाइल पेस्ट कर सकते हैं? – Sibi

उत्तर

14

फ़ंक्शन ठीक है, यह आपका तर्क है कि बंद है।

splitAt1 [1 2 3 4] के बजाय splitAt1 [1,2,3,4] आज़माएं और इसे काम करना चाहिए।

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