如何评估Haskell中的IO Bools

时间:2011-10-01 04:11:31

标签: haskell monads

我正在尝试编写一个带有IO Bool的函数,并根据这个做了什么,但我无法弄清楚如何评估IO Bool。我尝试说do conddo {cond==True},但收到错误Couldn't match expected type 'Bool' against inferred type 'a b'。有人可以指导我找到解决方案吗?

1 个答案:

答案 0 :(得分:6)

在使用之前,您需要从IO中解压缩/拔出bool。这是一个例子:

main = useBool trueIO

trueIO :: IO Bool
trueIO = return True

useBool :: IO Bool -> IO ()
useBool a = do
    b <- a
    putStrLn (show b)