2017-05-08 1 views
0

저는 haskell에 Greatest Common Divisor 함수를 작성하려고합니다. 이것은 내가 지금까지 가지고있는 것입니다 :haskell 오류가 '|'입력시 구문 분석 오류가 발생했습니다.

gcd1 :: Int -> Int -> Int 
gcd1 a b 
    | a == 0 = b 
    | b == 0 = a 
    | otherwise = gcd (mod a b) 

컴파일하려고하면 오류가 발생합니다. 나는 haskell이 공백을 사용하여 함수 선언이 시작되는 곳과 본문이 시작되는 곳을 결정하는 방법에 대해 읽었지만 다른 양의 공백으로 계속 시도하고 동일한 오류가 발생합니다. 내가 빠진 것이 있습니까?

+1

야생 추측 - 탭과 공백을 혼합하고 있습니까? -'-Wall'을 켜면 경고가 나올 겁니다. 아니면''s/\ t// g'를 검색하고 바꿔야합니다. – epsilonhalbe

+0

'+ g cd = undefined' 파일에 넣습니다. 그리고 그것은 어떤 문제없이 컴파일되었습니다. – epsilonhalbe

답변

2

마지막 줄에서 gcd를 2 개의 인수에 적용해야합니다. 당신은 하나만 -> (mod a b)에 적용하고 있습니다. 또한 언급 된 다른 사람들과 마찬가지로 공간과 탭이 어우러져 있습니다. 공백 만 사용하는 것이 좋습니다.

GCD 기능을 정의 할 때, 구현시 사전 정의 된 gcd 기능을 사용하지 않는 것이 좋습니다.

관련 문제