相关疑难解决方法(0)

算子法律是否证明结构的完整保存?

在Data.Functor的文档中,以下两个被称为仿函数法则,所有仿函数都应该遵守.

fmap id  ==  id
fmap (f . g)  ==  fmap f . fmap g
Run Code Online (Sandbox Code Playgroud)

我的直觉告诉我仿函数应该工作的方式是它们应该是"结构保留",或者换句话说,如果你有一个函数f :: a -> b而它是逆的g :: b -> a那么

fmap f . fmap g  ==  id
Run Code Online (Sandbox Code Playgroud)

我没有能够提出一个fmap坚持前两个法律并违反第二个法律的实施,但这几乎不能证明.有人可以开导我吗?

haskell functional-programming category-theory

8
推荐指数
1
解决办法
386
查看次数