이 질문은 훌륭한 챕터에서 새로운 챕터를 읽는 동안 발생했습니다.Haskell은 어떤 typeclass 인스턴스를 의미하는지 어떻게 알 수 있습니까?
실용적 typeclass가있는 어쩌면 인스턴스에 대한 정의의 일부로서 :
pure = Just
난 그냥 GHCi 및 가져 오기 Control.Applicative에 가서 할 경우
pure (3+)
I 돈 그냥 아무것도 얻지 못한다. 나는 표현의 일부에서 사용한다면 :
pure (3+) <*> Just 4
나는 그것은 또한 놀라운 일이 아니다 추측 7. 그냥 얻을,하지만 난 typeclasses 작동 방법에 대한 중요한 뭔가가있어, 나는이 있다고 생각 pure
여기에 전화와 모호성.
혼란 스러우면 누구나 자세히 설명 할 수 있습니까?
아, 그렇다면 컴파일러는 "흠,이 인수의 형식이 모호하기 때문에 다음 인수의 형식을 확인하고 다시 돌아갑니다"와 같은 작업을 수행합니까? –
타입 추론은 꽤 복잡하지만 한 단계에서 발생하지 않는다는 것을 알고 있어야합니다. 타입 추론 기는 보통 한 단계에서 정보를 수집하고, 나중에 단계에서 좀 더 많은 정보를 수집합니다. 따라서 왼쪽에서 오른쪽으로 한 번에 모든 것에 올바른 유형을 추론하지는 않습니다.이 경우'순수'는'(Applicative a1) => a1 (Int -> Int)'이고,'a1'은 형식화 된 형 변수 일 뿐이며, 타입 추론 중에 나중 단계에서 'a1'은'어쩌면'이라고 결론을 내릴 것이고, 그러면'a1'을'어쩌면'으로 대체 할 것입니다. –
고맙습니다 - 그게 아주 도움이됩니다! –