首页 > 解决方案 > 在命令行中运行时输出 putStrLn 抛出错误

问题描述

我不明白为什么这段代码没有输出。我不断收到错误消息:解析错误(可能是不正确的缩进或不匹配的括号) putStrLn “输入多少个数字:”

 main = do
    putStrLn "Enter how many numbers:" -- clearer
    listlen <- getLine 
    if (listlen < 100)
    then 
    putStrLn "Enter a number: "
    numberString <- getLine
    let numberInt =(read numberString :: Int)
    print (numberInt)
    else 
        putStrLn " Error: listlen must be less than 100"

标签: haskell

解决方案


当我将您的示例粘贴到我的编辑器中时,失败的那一行是“then”之后的那一行。如果在“then”之后添加“do”,该错误就会消失。

所以:

then do
putStrLn "Enter a number: "

...ETC。


推荐阅读