Fof*_*Fof 0 haskell types unification ghci
我试图理解为什么类型:
(flip .) is: (a -> a1 -> b -> c) -> a -> b -> a1 -> c
首先,类型:
flip: is (a -> b -> c) -> b -> a -> c
(.): is (b -> c) -> (a -> b) -> a -> c
我将在我的解释中将变量重命名为更清晰,因此类型:
flip: is (ax -> bx -> cx) -> bx -> ax -> cx
(.): is (by -> cy) -> (ay -> by) -> ay -> cy
然后我尝试这样替换:
ax = (by -> cy)
bx = (ay -> by)
cx = ay -> cy
因此得到的类型是:(ay - > by)(by - > cy) - > ay - > cy,这与正确的结果不同.
有帮助吗?
谢谢,塞巴斯蒂安.
(flip .)是的(.) flip,所以:
(.) :: (bx -> cx) -> (ax -> bx) -> ax -> cxflip :: (ay -> by -> cy) -> by -> ay -> cy(.) flip,
bx 是 ay -> by -> cycx 是 by -> ay -> cy(ax -> (ay -> by -> cy)) -> ax -> (by -> ay -> cy),(ax -> ay -> by -> cy) -> ax -> by -> ay -> cy,(flip .) :: (a -> a1 -> b -> c) -> a -> b -> a1 -> c.