एक खिलौना उदाहरण है लेकिन अभी भी निराशा में एक पार्स त्रुटि फेंकता है:हास्केल एक अजीब जगह
numberMapper:: IO()
numberMapper = do codes <- forM [1 .. 4] (\num ->
do putStrLn $ "Enter a code for " ++ show num
code <- getLine
return code)
let numberCodes = zip [1 .. 4] codes
in forM numberCodes (\(num,code) ->
putStrLn $ "Got code " ++ show code ++ " for " ++ show num)
ghci
मुझसे कहता है मैं एक Parse error in pattern: putStrLn
है और मैं समझ नहीं क्यों यह पार्स करने में विफल करना चाहिए।
ठीक है, यह काम करता है अगर मैं प्रत्येक 'कथन' के अंत में डॉक्स ब्लॉक और अर्धविरामों के लिए ब्रेसिज़ जोड़ता हूं - लेकिन क्या यह अनुशंसित समाधान है? (यह थोड़ा अन-कार्यात्मक लगता है: पी) – agam
आप दिखा सकते हैं कि अर्धविराम और ब्रेसिज़ पहले से ही मौजूद हैं, लेकिन अदृश्य हैं। (ऐसे नियम हैं जहां स्वचालित ब्रेसिज़ और अर्धविराम जाते हैं।) –