gpt4 book ai didi

haskell - 第一个仿函数定律是否遵循第二个?

转载 作者:行者123 更新时间:2023-12-03 15:14:02 26 4
gpt4 key购买 nike

根据this question Haskell 中的第 1 条暗示了第 2 仿函数定律:

1st Law: fmap id = id
2nd Law : fmap (g . h) = (fmap g) . (fmap h)

反过来是真的吗?从第二定律开始,设置 g等于 id ,我可以推理以下并得到第一定律吗?
fmap (id . h) x = (fmap id) . (fmap h) x
fmap h x = (fmap id) . (fmap h) x
x' = (fmap id) x'
fmap id = id

在哪里 x' = fmap h x

最佳答案


data Break a = Yes | No

instance Functor Break where
fmap f _ = No

显然第二定律成立
   fmap (f . g) = const No = const No . fmap g = fmap f . fmap g

但是,第一定律没有。你的论点的问题不只是 x'格式为 fmap f x

关于haskell - 第一个仿函数定律是否遵循第二个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13539335/

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