幻想世界/ id有什么作用?

时间:2019-11-26 13:15:21

标签: javascript category-theory fantasyland

fantasy-land/id :: Category c => () -> c a a

我真的不明白这个签名怎么说? id是一种方法,它使用零个参数,并返回类别和另外两件事。

对吗?这有什么意义?

1 个答案:

答案 0 :(得分:2)

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