하스켈에서 숫자 표현을위한 몇 가지 사용자 지정 데이터 형식을 만들었으니 이제는 EQ 인스턴스를 구현하고 싶지만 어쨌든 나는 갇혀있다. 그래서 난 이미 만든 :하스켈에서 사용자 정의 데이터 형식에 대한 인스턴스 생성하기
instance (Eq Sign) => Eq (Numeral) where
(==) Num(x,_)== Num(y,_) = x==y
그러나 나는이 오류가 : 패턴 구문 분석 오류 :
data Digit = Zero | One | Two
type Digits = [Digit]
data Sign = Pos | Neg -- Pos fuer Positive, Neg fuer Negative
newtype Numeral = Num (Sign,Digits)
instance Eq Sign where
(==) Pos Pos = True
(==) Neg Neg = True
(==) _ _ = False
instance Eq Digit where
(==) Zero Zero = True
(==) One One = True
(==) Two Two = True
(==) _ _ = False
가 지금은 내가이 시도 내 사용자 정의 유형 숫자에 로그인을 체크 아웃 할 (==)
어느'(==) (NUM (X, _)) (NUM (Y, _)) = X == y' 또는'민 (X, _) == 민 (y, _) = x == y'. – jpath
또한 왜 'Numt'에'newtype'을 사용합니까? 왜'data Numeral = Num Sign Digits'가 아닌가? – jpath
내가 작성한 첫 번째 사례를 입력 할 때 모호한 발생 = ''== ' 하지만 이전에는 여러 번 신고 된 것으로 나타 났으며 (두 번째 사례도 마찬가지 임) –