कृपया मेरे साथ भालू क्योंकि मैं कार्यात्मक प्रोग्रामिंग और हास्केल के लिए बहुत नया हूं। मैं हास्केल में एक फ़ंक्शन लिखने का प्रयास कर रहा हूं जो इंटेगर्स की एक सूची लेता है, कहा गया सूची के प्रमुख को प्रिंट करता है, और फिर सूची की पूंछ देता है। फ़ंक्शन को प्रकार [इंटीजर] -> [इंटीजर] होना चाहिए। थोड़ा सा संदर्भ देने के लिए, मैं एक दुभाषिया लिख रहा हूं और इस फ़ंक्शन को तब कहा जाता है जब उसके संबंधित कमांड को एक सहयोगी सूची में देखा जाता है (कुंजी कमांड है, मान फ़ंक्शन है)।हास्केल: I/O और एक फ़ंक्शन से लौटने
forth.hs:12:1:
Couldn't match expected type `[a]' against inferred type `IO [a]'
Expected type: ([Char], [a] -> [a])
Inferred type: ([Char], [a] -> IO [a])
In the expression: (".", dot)
मुझे लगता है कि कॉल डॉट समारोह में मुद्रित करने के लिए क्या हो रहा है है:
dot (x:xs) = do print x
return xs
संकलक निम्न त्रुटि संदेश देता है:
यहाँ कोड मैं लिखा है है अनुमानित प्रकार आईओ [ए] होना चाहिए। क्या कोई तरीका है कि मैं रिटर्न प्रकार के प्रिंट को अनदेखा कर सकता हूं, क्योंकि मुझे वापस लौटने की ज़रूरत है, सूची की पूंछ डॉट में पारित की जा रही है।
अग्रिम धन्यवाद।
[ 'Debug.Trace'] (http: // www .haskell.org/ghc/docs/6.12.2/html/पुस्तकालय/आधार-4.2.0.1/डीबग-Trace.html) मॉड्यूल का उपयोग चीजों को मुद्रित करने के लिए भी किया जा सकता है। –