functional-programming - 为什么总和(或有区别的联合或不相交的联合)是乘积的倒数?
问题描述
我正试图围绕类别理论来思考这个问题——为什么总和类型与产品类型相反?我的意思是,我看到箭头如何在相反的类别中改变方向,但我不明白为什么 sum 不能包含两个分量。
解决方案
它们是双重的,一个由映射入属性定义,另一个由映射出属性定义。每个映射到产品 ,c -> (a, b)
等价于一对函数c -> a
和c -> b
。联积的每个映射都Either a b -> c
相当于一对函数a -> c
and b -> c
(想想模式匹配 theLeft a
和Right b
构造函数)。
推荐阅读
- reactjs - 为什么 useEffect 在页面刷新时会中断?
- colors - 有没有“反HSL颜色”的概念?
- javascript - React - 如何每次都注入 mobx 商店的新实例?
- python - Kivy - 从 Python 代码将 on_release 属性更改为“更改屏幕”
- cryptography - 在以太坊网络上存储数据和图像
- reactjs - 在请求中传递 X-CSRFToken 时未设置 CSRF cookie
- sql - 连接内的续集限制
- python - 基于 Python 的 sinc 音频重采样函数或代码;是否有用于音频重采样的免费且可移植的 python 库?
- javascript - 我不知道“!”的意思?
- r - R - 识别数据框中特定列的逗号分隔列表中的单词