haskell - “fix” 在非函数类型上的有用实例?

标签 haskell recursion fixpoint-combinators

每次使用fix :: (a -> a) -> a ,它一直在类型

((a -> b) -> a -> b) -> a -> b

对于一些 ab . fix 是否真的有一些应用?它的类型参数没有实例化为函数类型,除了像 fix (const 0) 这样的微不足道的东西?将签名保留最一般的目的是什么?

最佳答案

我不知道你是否会认为这个例子是微不足道的,但你可以使用 fix直接(不通过函数)建立数据:

repeat :: a -> [a]
repeat x = fix (x:)

关于haskell - “fix” 在非函数类型上的有用实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28036201/

相关文章:

haskell - 免费单子(monad)函数和仿函数定点之间的区别?

list - 使用递归将列表分解为子列表

haskell - Haskell 中的 RSS/Atom 提要解析

c - 一个简单的递归函数打印奇怪的东西

java - 函数 powRec(x,n-1) 如何执行求幂?

recursion - F#中的递归lambda

haskell - 可能不可能的 mfix 是非平凡的总数吗?

haskell - 有类型约束的类型叫什么?

haskell - 如何设置 haskell-mode 来生成标签?

java - 递归函数抛出 java.lang.StackOverflowError