Fantasy-land / id是做什么的?

问题描述 投票:1回答:1
fantasy-land/id :: Category c => () -> c a a

我真的不明白这个签名在说什么? id是一种方法,它接受零个参数并返回属于Category的东西和另外两个东西。

正确吗?这有什么意义?

javascript category-theory fantasyland
1个回答
0
投票

类别由对象和态射(箭头)组成。如果要在Haskell内定义类别,则几乎将对象作为类型卡住了。但是对于任何两个对象,您都可以定义一组射射:hom-set。在这里,c是一个类型构造函数,它接受两个对象(类型),例如ab,并产生一个hom-set c a b。在最简单的示例中,只需将c替换为(->)。在这种情况下,c a b变为a->b(使用中缀符号)。同样,c a a对应于a->a。这些词素之一被称为同一性词素。函数() -> c a a选择该态射。完整的定义还必须包括组成运算符(.),该运算符采用两个可组合的hom-set并产生第三个hom-set,以及定律。但是,Haskell无法表达单位法和关联法。

© www.soinside.com 2019 - 2024. All rights reserved.