Haskell错误变量不在范围内

Mig*_*llo 3 emacs haskell

我编写了一个非常基本的递归函数,但是当我尝试使用它时,Haskell给了我一个错误.

这是代码:

import Data.Char
import Test.QuickCheck
potencia :: Integer -> Integer -> Integer
potencia x 0 = 1
potencia x n = x*(potencia x (n-1))
Run Code Online (Sandbox Code Playgroud)

这是错误:

<interactive>:27:1-8: error:
    Variable not in scope: potencia :: Integer -> Integer -> t
Run Code Online (Sandbox Code Playgroud)

如果我删除了libreries的导入,它不再给我错误,但我以后需要它们.我正在使用haskell平台的最新更新和emacs编辑器.谢谢.

rad*_*row 6

我看到你在交互式shell中定义了你的功能.大多数Haskell的REPLs的阅读和eval指令线,由线,所以当你键入potencia :: Integer -> Integer -> Integer它被解释就在此刻,让编译器抱怨potencia缺乏执行.你应该:

  • 在外部文件中定义并使用:l(推荐)加载它
  • 键入:set +m和使用let语句来定义关于缩进的变量
  • :{和围绕你的定义:}
  • 将整个定义和声明放在一行中,将每个部分分开 ;