每次使用fix :: (a -> a) -> a
,它一直在类型
((a -> b) -> a -> b) -> a -> b
对于一些
a
和 b
. fix
是否真的有一些应用?它的类型参数没有实例化为函数类型,除了像 fix (const 0)
这样的微不足道的东西?将签名保留最一般的目的是什么?
最佳答案
我不知道你是否会认为这个例子是微不足道的,但你可以使用 fix
直接(不通过函数)建立数据:
repeat :: a -> [a]
repeat x = fix (x:)
关于haskell - “fix” 在非函数类型上的有用实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28036201/