任何人都可以给出一些指针,说明为什么Haskell中的不纯计算被建模为monad?
我的意思是monad只是一个有4个操作的界面,那么建模副作用的原因是什么呢?
我开始学习Haskell,只是尝试了一个简单的代码,它在我运行时向我显示了一些错误
doubleMe :: Int -> Int
doubleMe x = x + x
main = do
    doubleMe 2
ghc -c first.hs
错误是:
$ ghc -c first.hs
first.hs:4:1:无法匹配期望的类型
IO t0' with actual typeInt'在表达式中:main检查函数的类型`main'
当我使用GCHi进行调试时,doubleMe首先加载函数没有问题,稍后再调用它.任何帮助,将不胜感激.