Haskell - 从键盘

时间:2015-05-07 12:42:11

标签: haskell

我正在尝试从键盘读取字符串。到目前为止,这是我的代码:

getLine :: IO String
getLine = do x <- getChar if x=='\n' then return [] else do xs<-getLine return (x:xs)

问题是我在编译时遇到了这个错误:

  

解析输入错误&#39;如果&#39;

任何想法我做错了什么?

1 个答案:

答案 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)