मुझे एक समस्या है, यह कोड काम नहीं करता है और मुझे नहीं पता क्यों:

foo :: [String] -> IO [String]
foo input = do
    choice <- getLine
    if choice == "1" then do
        putStrLn "good choice"
        return input
    else
        return []
0
develhevel 8 जून 2011, 14:39
3
"यह कोड काम नहीं करता" से आपका क्या मतलब है .. कोई कंपाइलर त्रुटि? रनटाइम त्रुटि ?
 – 
Ankur
8 जून 2011, 14:47

1 उत्तर

सबसे बढ़िया उत्तर

जैसा है (थोड़ा सा रीटैबिंग के साथ) कोड मेरे लिए काम करता है। अगर/अन्य को टैब के साथ सही करना मुश्किल है। विकी लेख if/then/else से मदद मिलनी चाहिए।

foo :: [String] -> IO [String]
foo input = do
  choice <- getLine
  if choice == "1" then do
    putStrLn "good choice"
    return input
    else
    return []

आंतरिक do एक्सप्रेशन को खत्म करने से if/then ब्लॉक को इंडेंट करना थोड़ा आसान हो जाता है।

foo2 input = do
  choice <- getLine
  if (choice == "1") 
  then (putStrLn "good choice" >> return input)
  else (return [])
2
Jeff Foster 8 जून 2011, 14:52