我是Haskell的新手,我在找到
的类型时遇到了问题f x y = f y x
GHCI给了我:a-> a-> b
但我不明白为什么。有人可以向我解释一下吗?
答案 0 :(得分:10)
如果可以同时使用x
(左侧)和y
(右侧)作为f
的第一个参数,则它们必须是同一类型。这就是a -> a
来自的地方。
你的函数将无限递归而不返回任何东西,所以你可以正确地声称它有一个任意的返回类型,因为它没有被返回另一个类型的值而被伪造的情况,因为它永远不会返回。这是任意b
的来源。