我正在尝试从键盘读取字符串。到目前为止,这是我的代码:
getLine :: IO String
getLine = do x <- getChar if x=='\n' then return [] else do xs<-getLine return (x:xs)
问题是我在编译时遇到了这个错误:
解析输入错误&#39;如果&#39;
任何想法我做错了什么?
答案 0 :(得分:3)
如果您要坚持在一行上编写所有内容,则需要在do
块中的连续语句之间插入分号:
getLine = do x <- getChar; if x=='\n' then return [] else do xs<-getLine; return (x:xs)
^ here ^ and here
最好将整个事物分成多行,但是:
getLine = do x <- getChar
if x=='\n' then return []
else do xs<-getLine
return (x:xs)