我有问题,此代码不起作用,我不知道原因:
foo :: [String] -> IO [String]
foo input = do
choice <- getLine
if choice == "1" then do
putStrLn "good choice"
return input
else
return []
答案 0 :(得分:2)
原样(有点重复)代码适合我。 if / else很难用标签搞定。 Wiki文章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 [])