永久功能应如何使用?

时间:2018-11-23 18:13:40

标签: haskell

我有一个功能。假设它看起来像这样:

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。我该如何解决?

1 个答案:

答案 0 :(得分:8)

您必须从forever导入Control.Monad。将此添加到文件顶部:

import Control.Monad (forever)

当编译器说variable not in scope...时,表示“我不知道这应该是什么;您尚未定义它”。这可能是由于未导入所需的模块引起的。

我怎么知道的?如果您search for forever on Hoogle,则表示它位于Control.Monad包中的base模块中。因此,您必须导入它才能使用它。