在命令行中运行时,输出putStrLn引发错误

时间:2018-12-01 01:33:47

标签: haskell

我不明白为什么不输出此代码。我不断收到这样的错误:解析错误(可能是缩进不正确或括号不匹配)                   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"

2 个答案:

答案 0 :(得分:1)

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

所以:

stream.forEach( ( LocalDate localDate ) -> {
    System.out.println( localDate );
} );

...等等。

答案 1 :(得分:1)

listlenString类型,无法与100进行比较。它需要使用read将其转换为数字:

if (read listlen < 100)
...