很抱歉这个问题,但我刚开始学习Haskell ... 我的问题与"定点组合器" ...
有关根据this wikipedia page section功能fix
,
fix f = f (fix f)
属于(或至少可以是类型)
(a -> a) -> a
有人能解释我为什么吗?
谢谢!
你是否有任何指针(网页,书籍......)解释如何从定义中猜出函数的类型?
答案 0 :(得分:6)
从定义
开始fix f = f (fix f)
由于需要参数,fix
必须具有类似
fix :: x -> y
它将其论证应用于某事,实际上
fix :: (p -> q) -> r
它实际上将其参数应用于fix f
,所以
fix :: (r -> q) -> r
最终结果实际上是此应用程序的结果,所以
fix :: (r -> r) -> r