gpt4 book ai didi

haskell - 组合两个 Functor 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 10:19:39 24 4
gpt4 key购买 nike

Exercise 5 of the Haskell Typeclassopedia Section 3.2要求对陈述进行证明或反例

The composition of two Functors is also a Functor.



起初我以为这是在谈论撰写 fmapFunctor 的两个单独实例定义的方法,但这并没有真正的意义,因为据我所知,类型不匹配。两种类型 ff' , fmap 的类型将是 fmap :: (a -> b) -> f a -> f bfmap :: (a -> b) -> f' a -> f' b ,而这似乎并不是可组合的。那么组成两个 Functors 是什么意思? ?

最佳答案

一个 Functor给出了两种映射:一种是类型到类型的映射(这是 x 中的 instance Functor x where),另一种是计算级别的函数到函数的映射(这是 x 中的 fmap = x)。您正在考虑编写计算级映射,但应该考虑编写类型级映射;例如,给定

newtype Compose f g x = Compose (f (g x))

你能写吗
instance (Functor f, Functor g) => Functor (Compose f g)

?如果不是,为什么不呢?

关于haskell - 组合两个 Functor 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19774564/

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