gpt4 book ai didi

haskell - Functor 实例 for (newtype Mu f = InF {outF::f (Mu f)})

转载 作者:行者123 更新时间:2023-12-01 07:53:03 24 4
gpt4 key购买 nike

这让我难住了。你如何为 newtype Mu f = InF {outF :: f (Mu f)} 编写一个 Functor 实例

最佳答案

你不能。为了为某些 Functor c 定义一个实例 cc 必须是 * -> * 类型。所以在你的情况下, Mu 应该是那种,这意味着它的参数 f 必须是那种 * 。但显然情况并非如此,因为您将 f 应用于其他内容(到 Mu f )。

更简单地说,如果 Mu 是一个仿函数,您可以对任何 fmap 类型的值使用 Mu f f 。但这将允许您将类型参数更改为任何其他类型,例如,通过将函数 fmap (const (0 :: Int)) 应用于任何 Mu f 值,它必须返回一个 Mu Int 值。但是您不能形成这样的值,因为该值的 outF 将具有没有意义的 Int (Mu Int) 类型。

关于haskell - Functor 实例 for (newtype Mu f = InF {outF::f (Mu f)}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770191/

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