gpt4 book ai didi

haskell - Haskell 中的类型 `Fix` 和函数 `fix` 如何相同?

转载 作者:行者123 更新时间:2023-12-04 16:50:24 26 4
gpt4 key购买 nike

我试图说服自己输入 Fix和功能 fix是一回事。
但我找不到他们的定义之间的相关性

-- definition of fix 
fix :: (p -> p) -> p
fix f = let {x = f x} in x -- or fix f = f (fix f)
-- definition of Fix
newtype Fix f = Fix { unFix :: f (Fix f) }
构造函数如何 Fix适合 (x -> x) -> x 的形式?

最佳答案

查看类型构造函数的种类Fix :

> :k Fix
Fix :: (* -> *) -> *

类型构造函数 Fix类似于函数 fix .

数据构造函数是另一回事。遵循 Understanding F-Algebras 中的解释, Fix是一个评估器:它评估类型为 f (Fix f) 的术语生成 Fix f 类型的值.这种评估是无损的;您可以使用 unFix 从结果中恢复原始值.

关于haskell - Haskell 中的类型 `Fix` 和函数 `fix` 如何相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59952446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com