द्वारा बाध्य एक कठोर प्रकार चर है इसलिए मुझे एहसास है कि यह एक संभावित डुप्लिकेट है प्रश्न, क्योंकि स्टैक ओवरफ़्लो पर उन त्रुटियों में से कई त्रुटियों की सूचना दी गई है, लेकिन कोई भी समस्या मेरी समस्या पर लागू नहीं होती है।हास्केल, भले ही मेरा प्रकार निर्दिष्ट नहीं है, मुझे यह त्रुटि मिलती है: 'ए' के साथ 'ए' टाइप नहीं किया जा सका, 'ए'
elementAt' :: Integral b => [a] -> b -> a
elementAt' [x:_] 1 = x
elementAt' [x:xs] y = elementAt' xs yminus1
where yminus1 = y - 1
मामले में आप सोच रहे हैं कि 99 Haskell Problems से यह समस्या 3 है:
तो मैं निम्नलिखित समारोह है। फ़ंक्शन का लक्ष्य एक सूची और एक सूचकांक इनपुट के रूप में लेना है, और उस सूचकांक (1 से शुरू) पर मान वापस करना है। मैं समस्या का समाधान नहीं चाहता, अगर मैंने किया तो मैं केवल प्रदान किए गए लोगों को देख सकता हूं। लेकिन मुझे एक त्रुटि मिल रही है जिसे मैं समझ नहीं पा रहा हूं। मैं eclipseFP, हास्केल के लिए ग्रहण प्लगइन का उपयोग कर रहा है और यह रेखांकित किया है "[एक्स: _]" और "[x: XS]" निम्न त्रुटि के साथ समारोह के कुछ भागों:
Couldn't match type `a' with `[a]'
`a' is a rigid type variable bound by
the type signature for elementAt' :: Integral b => [a] -> b -> a
सभी धागे में जो इस त्रुटि पर चर्चा करता है कि मैंने समस्या को देखा है आमतौर पर तब होता है जब कोई किसी निश्चित प्रकार की अपेक्षा करने वाले किसी चीज़ को गलत आउटपुट देने का प्रयास करता है। उदाहरण के लिए, किसी चीज़ की लंबाई (जो प्रकार int है) को वापस करने के लिए "Num a" चर प्रकार होना चाहिए।
लेकिन मेरे मामले में मैं चर के लिए एक प्रकार भी प्रदान नहीं कर रहा हूं। यह कुछ भी हो सकता है, है ना? तो मुझे यह त्रुटि क्यों मिल रही है? अगर मुझे समझ में आया कि मुझे त्रुटि क्यों मिल रही है तो मैं इसे ठीक कर सकता हूं, लेकिन मुझे समझ में नहीं आता है।
क्या कोई मुझे बता सकता है कि मुझे यह त्रुटि क्यों मिल रही है?
आपकी मदद की बहुत सराहना की है, धन्यवाद। -Asaf
संपादित करें: अब तक प्रदान किया गया हर उत्तर सही है, उपयोगी जानकारी के लिए सभी को धन्यवाद। मैं उस व्यक्ति को चुनने जा रहा हूं जिसे मैं सबसे स्पष्ट मानता हूं (मुझे इसे करने के लिए 5 मिनट का इंतजार करना होगा)।
क्यों न केवल 'तत्व' लिखें [x: xs] y = element 'xs (y-1) '' –
@Vixen मैंने जो लिखा है उससे अलग कैसे है ... एक परिवर्तनीय घोषणा सहित अन्य? स्पष्ट रूप से संकलक किसी भी मामले में एक ही चीज़ को ठीक कर देगा (अगर मैं गलत हूं तो मुझे सही करें)। – Asaf
हां, यह वही है, मुझे लगता है कि यह yminus1 के रूप में कुछ घोषित करने के लिए अजीब लग रहा है, जब y-1 अधिक आसानी से पढ़ता है और मेरी राय में सुंदर दिखता है –