如何修复GHCI中的"variable not in scope"错误?



我已经编程了一个非常基本的递归功能,但是当我尝试使用它时,哈斯克尔给了我一个错误。

这是代码:

import Data.Char
import Test.QuickCheck
potencia :: Integer -> Integer -> Integer
potencia x 0 = 1
potencia x n = x*(potencia x (n-1))

这是错误:

<interactive>:27:1-8: error:
    Variable not in scope: potencia :: Integer -> Integer -> t

如果我删除了库的导入,它不再给我错误,但我需要以后再带来错误。我使用的是Haskell平台的最新版本。

我看到您在交互式外壳中定义了您的功能。Haskell的大多数REPL读取和评估指令逐条排列,因此,当您键入potencia :: Integer -> Integer -> Integer时,它将被解释此刻,因此编译器抱怨Potnencia缺乏实现。您应该:

  • 将其定义在外部文件中,然后使用:l(推荐)加载
  • 类型:set +m并使用let语句来定义有关凹痕的变量
  • :{:}
  • 包围定义
  • 将整个定义和声明放在一行中,用;
  • 将每个部分分开

相关内容

最新更新