나는이 같은 Num a => a
을 만들 수 있습니다Num은 이런 식으로 특별합니까?
foo :: Num a => a
foo = 2
을 유사하게 다른 수의 클래스 :
foo :: Fractional a => a
foo = 2.0
는 그러나, 나는 형 Eq a => a
, Ord a => a
의 무언가를 만드는 방법을 생각할 수 없다, 또는 숫자가 아닌 것 (undefined
사용하지 않음).
숫자가 이런 식으로 특별하다고 생각됩니다.
숫자 리터럴은'fromInteger'와'fromRational'을위한 특별한 문법입니다 - 당신은'f :: Num a => .. a' 함수를 가지고 있기 때문에'Num a => a' 타입의 값을 만들 수 있습니다 (즉, fromInteger). 정확하게이 같은 사실은 다른 어떤 유형의 모형에도 적용됩니다. 'Eq' 나'Ord'를위한 함수, 즉 리턴 타입의 typeclass 인자가 없다. – user2407038