나는 하스켈에서 다음 함수를 컴파일 할 수 있습니다 얻을 수 있으며하스켈 기능은 컴파일 오류가
addVector :: (Num a) => (a, a) -> (a, a) -> (a, a)
addVector (a, b) (c, d) = (a + c, b + d)
작동하지만 두 기능 사이의 유일한 차이는있다 기능
addVector3 :: (Float a) => (a, a) -> (a, a) -> (a, a)
addVector3 (a, b) (c, d) = (a + c, d + b)
을 다음과 같은 사항에 대해 컴파일 오류
: 입력오류 (Num
Float
로 변경)
`Float' is applied to too many type arguments
In the type signature for `addVector3':
addVector3 :: Float a => (a, a) -> (a, a) -> (a, a)
'Num'은 유형이 아닌 _class_ 유형입니다. '플로트 '는 _ 유형 _입니다. 그것들을 혼합하고 일치시킬 수는 없습니다. – Xeo