2016-10-14 2 views
0

내가 추가 다항식을 다루는 다음 하스켈 코드를했다 "는 바인딩 동반 부족"나는하스켈 오류

module PolyLA2 where -- defines the module name so you can import from another haskell file 

type Coeff = Int 
type Exp = Int 
type Polynomial = [(Coeff, Exp)] -- a list of terms in a polynomial formula 

addpoly::Polynomial -> Polynomial -> Polynomial 
addPoly [] ys = ys -- Base case 
addPoly xs [] = xs -- Base case 
addPoly ((a,b):xs) ((c,d):ys) 
    | a == c = ((a, b + d) : (addPoly xs ys)) 
    | a < c = ((a,b) : (addPoly xs ((c,d) : ys))) 
    | a > c = ((c,d) : (addPoly ((a,b) : xs) ys)) 

나는 그것을 컴파일하려고 할 때이 논리는하지만 올바른 생각을 얻을 "동반 부족 바인딩 오류 "내 질문은이 오류의 원인이 무엇입니까?

+3

사례 :'addpoly'는'addPoly'와 동일하지 않습니다. –

+0

와우, 어리석은 실수는 'addPoly'에서 p를 대문자로 잊어 버렸습니다. 도움을 주셔서 감사합니다 –

+1

오른쪽면에 여분의 괄호가 있음을 알고 있습니까? 또한 더 엄격한'Polynomial' 타입 및/또는 더 많은 다형성 타입으로 더 나아질 수 있습니다. – dfeuer

답변

5

라인 :

addpoly::Polynomial -> Polynomial -> Polynomial 

가되어야한다

addPoly::Polynomial -> Polynomial -> Polynomial 

공지 사항 문자 P.