2017-12-15 15 views
1

정말 기본적인 재귀 함수를 프로그래밍했지만 Haskell을 사용하려고하면 오류가 발생합니다. Haskell 에러 변수가 범위 내에 없음

코드입니다 :

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

그리고 이것은 오류이다 : 나는 libreries의 수입을 삭제하면

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

그것이 나던 더 이상 나에게 오류를 제공하지만 내가 그들을 필요 후에. 나는 haskell 플랫폼과 emacs 편집기의 마지막 업데이트를 사용하고있다. 감사합니다. .

+4

대화 형 셸에서 여러 줄 함수를 정의하는 경우': {'및':} '또는 다른 측정 값을 사용해야합니다. –

+2

.hs 파일에 코드를 작성하고 GHCi에서 코드를 모두로드 (또는 컴파일)하십시오. – chi

+0

나는이 문제가 생략 되었기 때문에 "불명확"하다고 결론 지었다. "코드 :"와 "오류 :"사이에 "나는 뛰었어야합니다."라고 말하면서 코드가 정상적으로 실행되었으므로 의심의 여지없이 문제가됩니다. –

답변

0

대화 형 셸에서 함수를 정의하고 있습니다. Haskell의 REPL은 대부분 한 줄 단위로 읽고 읽고 평가하기 때문에, potencia :: Integer -> Integer -> Integer을 입력하면이 으로 바로 해석되므로 컴파일러는 potencia가 구현이 부족하다고 불평합니다. 당신이해야 하나 :

  • 외부 파일에 정의하고 :l를 사용하여로드
  • ;
  • 로 각 부분을 분리 한 줄에 전체 정의와 선언을 넣어 :{:}
  • 와 정의를 서라운드 (권장)