은 가정하자 나는 형에게 정의 내가 A Int
및 A Double
다른, 불평등 한 종류이기 때문에 (B :: A Int) == (B :: A Double)
이 유형 체킹하지 않는, 그래서 (==) :: Eq a => a -> a -> Bool
haskell에서 매개 변수가없는 ADT의 생성자 유형은 무엇입니까?
을 적용 할 수 없습니다하지만 내가 무엇을 ghci 요청할 수 있다는 사실을 알고
data A a = A a | B deriving Show
show B
이고 ghci는 문자열 "B"라고 말합니다. 그 유형은 정확히 B
입니까? 이건 A Int
입니까? 왜? 그리고 ghci가 B
의 유형이 모호하다는 것에 불평하지 않는 이유는 무엇이든지 a
일 경우 A a
일 수 있기 때문입니다.
나는 비슷하게 ghci에게 show (B==B)
을 물어볼 수 있습니다. "True"라고 말하면, 그 유형은 모두 B
입니까?
나는 :t B
와 B의 종류, 그것은 B :: A a
를 인쇄 ghci 물어 보면,하지만이 두 가지 예에서 혼란 스러워요 않는 한 모든 유형의 매개 변수없이 일부 특정 유형이어야합니다보다. 그러면 B
의 유형이 B==B
인 것을 어떻게 알 수 있습니까?
조금 혼란 스럽습니다. 이것이 어디에서 설명 되었습니까?
대단히 감사합니다. 정확히 알고 싶습니다. – Kirill