Haskell에서 GHCi (버전 6.12.3)를 사용하고 있습니다. 나는 최근에 펑터 (functor)에 대해 읽었고 응용 펑터 (applicative functor)는 응용 펑터의 <*>
과 유사하지 않은 것이 펑터의 프리미티브를 사용하여 구현 될 수 없다고 생각했다. 어떤 사고 후 나는 다음과 같은 오류가있어 더 일반적으로 A (거의) 이상Haskell - fmap fmap이 작동하지 않습니다.
Functor f => f (a -> b) -> f (f a -> f b)
의 종류 나
(Functor f1, Functor f2) => f1 (a -> b) -> f1 (f2 a -> f2 b)
let q = fmap fmap
을 시도
있을 것이다 fmap fmap
함께했다
<interactive>:1:8:
Ambiguous type variable `f1' in the constraint:
`Functor f1' arising from a use of `fmap' at <interactive>:1:8-16
Probable fix: add a type signature that fixes these type variable(s)
<interactive>:1:13:
Ambiguous type variable `f' in the constraint:
`Functor f' arising from a use of `fmap' at <interactive>:1:13-16
Probable fix: add a type signature that fixes these type variable(s)
제안 된대로 위의 형식 서명을 쓰는 것이 도움이되지 않았습니다. 가장 이상한 점은 내가 입력했을 때 :t fmap fmap
위와 동일한 유형이 있습니다.
내가 뭘 잘못하고 있니? fmap fmap
이 GHCi가 유형을 찾았는데 왜 유형 오류가 발생합니까?
당신의 영혼이 작용하기 때문에 그것은 단관절 제한 인 것처럼 보입니다. 감사. 하지만 형식을 지정했을 때 왜 작동하지 않습니까? – Mafi