作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在阅读Bartosz出色的Category theory for Programmers时,我陷入了第二个练习中,该练习处理的是球型产品。给定一个姿势,
b e
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g
最佳答案
首先让我们看一下产品的定义:
对象a
和b
的乘积是具有形态学c
和p :: c -> a
的对象q :: c -> b
存在,因此对于任何其他对象c'
(具有形态学p' :: c' -> a
和q' :: c' -> b
),存在态射m :: c' -> c
,例如p' = p . m
和q' = q . m
。
请记住,位姿的态射基本上描述了“小于或等于”的关系。
现在,两个对象c
和a
之间的乘积b
必须是小于或等于a
和b
的对象。例如,让您从图形中选择a
作为e
,选择b
作为g
:
b e -- this one is a
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g -- this one is b
a
。
a
是
e
和
g
乘积的有效候选者吗?让我们检查产品的定义:
a
到
e
是否有态射?是的,它存在并且可以写为
pₐ = ce . ac
(读作:“首先是从a到c的箭头,然后是从c到e的箭头”)。
a
到
g
是否存在莫罗主义?是的,它也存在,可以写为
qₐ = cg . ac
。
a
和其他候选者之间构造一个独特的同构性?
c
也满足必需的条件,即
p = ce
和
q = cg
。
a
到
c
存在态射。这意味着
c
必须是最佳候选,因为我们现在可以定义
m = ac
和
pₐ = p . m = ce . ac
这样的词素
qₐ = q . m = cg . ac
。
min(a, b)
相对应,因为每个对象都必须与任何其他对象相关(Wolfram将此称为
trichotomy law)。
a
和
b
的最小对象。总的来说,这对应于两个对象的最大值。您可以自己解决这个问题。
关于product - 坐姿产品和副产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38673963/
我发现自己在我的设计中遇到了相同的模式,我从一个具有几个数据构造函数的类型开始,最终希望能够针对这些数据构造函数进行输入,从而将它们拆分为自己的类型,然后必须增加在我仍然需要表示多个这些类型(即集合)
我是一名优秀的程序员,十分优秀!