javascript - Fantasy-land/id 是做什么的?
问题描述
fantasy-land/id :: Category c => () -> c a a
我真的不明白这个签名是什么意思?id
是一个方法,它接受零个参数并返回一个类别和其他两个东西。
那是对的吗?这有什么意义?
解决方案
范畴由对象和态射(箭头)组成。如果你想在 Haskell 中定义一个类别,你几乎会被对象作为类型所困。但是对于任何两个对象,您都可以定义一组态射:hom 集。在这里,c
是一个类型构造函数,它接受两个对象(类型),比如说a
和b
并产生一个 hom-set c a b
。在最简单的示例中,只需替换c
为(->)
. 在这种情况下c a b
变为a->b
(使用中缀表示法)。同理c a a
对应a->a
。这些态射之一被指定为恒等态射。该函数() -> c a a
选择了该态射。完整的定义还必须包括组合运算符(.)
这需要两个可组合的 hom 集并产生第三个和定律。但是,单位和结合律在 Haskell 中是无法表达的。
推荐阅读
- mysql - MySQL 错误代码 1215:无法添加外部约束
- python-3.x - 迭代来自两个数据帧的列以估计相关性和 p 值
- sql - Azure 函数:异常:TypeError:connection.query 不是函数
- flutter - 更新多提供者颤振的问题
- go - 转到 TCP 侦听器 ACL
- python-3.x - 为什么这个正则表达式 (\d)\d\1 不能从字符串中找到替代的重复数字?
- chat - 控制 salesforce 实时聊天记录状态字段值
- postgresql - 无法使用 Postgresql 将年龄函数转换为浮点数
- .net-core - 有没有办法在使用 Microsoft.IDistributedCache 时重新连接 Redis NoConnection 异常?
- c# - 值的正则表达式范围从 1 - 1440(整数)