answerFalse::Int->IO()
answerFalse hp=do
hp--
if hp<=0 then
putStrLn"================Game Over================"
else
print(hp)
我已经和值3 声明马力为INT现在我的问题是,当我把“hp--”,它显示错误哈斯克尔减法错误
Couldn't match expected type `IO a0' with actual type `Int'
,但如果我把“--hp “,结果打印是3不是2.
我也试过让hp = hp-1,系统卡在那里。
Haskell不是C.你不能简单地去改变变量的值! – Thomas 2012-02-11 16:13:40
Haskell是一个函数式语言,而不是一个命令式的语言,所以像 - 和++这样的东西将不起作用。 – mrlee 2012-02-11 16:15:45
感谢您的解释.. – user1151874 2012-02-11 16:29:47