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