【发布时间】:2018-04-29 22:37:11
【问题描述】:
我收到以下代码错误:
main = do
putStrLn "Enter parameter"
parameter <- getLine
if head parameter == "c" then
let object = getObject parameter
print object
else
putStrLn "Error, try again"
main
我得到的错误是:
parse error on input `print'
尝试打印对象时。如果我改为尝试打印函数的值而不保存它,让它工作得很好,但我需要保存对象以供以后使用。
语法应该如何使它工作?
同样在“其他”部分我得到以下错误:
The function `putStrLn' is applied to two arguments,
but its type `String -> IO ()' has only one
In the expression: putStrLn "Error" main
它认为我尝试运行 main 作为 putStrLn 的参数,但我真正想做的是首先显示错误,然后再次运行 main。我怎样才能解决这个问题?
提前致谢!
【问题讨论】:
-
语法是
let .. in expr,所以你需要let object = getObject parameter in print object。 -
啊,太简单了!我认为“in”只在do符号之外使用。完美运行,谢谢!
标签: haskell if-statement let