我有一个功能。假设它看起来像这样:
strangeFunc = do
putStrLn "Welcome to the game! Please, enter the name of the file: "
--some more code
然后,我希望它永远运行,所以我这样做
strangeFunc = forever $ do
putStrLn "Welcome to the game! Please, enter the name of the file: "
--some more code
但是我有一个错误:variable not in scope: forever
。我该如何解决?
答案 0 :(得分:8)
您必须从forever
导入Control.Monad
。将此添加到文件顶部:
import Control.Monad (forever)
当编译器说variable not in scope...
时,表示“我不知道这应该是什么;您尚未定义它”。这可能是由于未导入所需的模块引起的。
我怎么知道的?如果您search for forever
on Hoogle,则表示它位于Control.Monad
包中的base
模块中。因此,您必须导入它才能使用它。