寻找答案真的不应该这么难,但是我找不到... 我想延迟在一个do
块中的下一步执行。我找到了以下函数:delay
、sleep
、nanosleep
和usleep
。
还有这个问题,它没有说明如何使用任何一个函数:Sleep in Haskell。
对于所有这些函数,我都得到了相同的错误,所以可能我从根本上做错了什么:
Variable not in scope: delay :: Integer -> IO a0
这是我的测试片段:
main = do
{
putStrLn "line 1"
; delay 2
; putStrLn "line 2"
}
不知何故,谷歌搜索该错误实际上并没有得到任何有用的结果。
delay
函数而不是threadDelay
,我需要导入什么? - lo tolmencredelay
函数是非标准的,需要安装一个名为concurrent-extra
的第三方包,如链接所示。然后,您需要import Control.Concurrent.Thread.Delay
即可使用。我不确定为什么需要特定的函数,因为在Haskell中挂起程序执行的标准方法是使用threadDelay
。 - ForceBru