在理解Functor之前,必须对抽象代数的范畴论有所了解,有范畴论的知识作为铺垫,感觉Functor也不是那么的难以理解了。
一个范畴C包括:
- 一个由对象所构成的类ob(C)
- 对象之间的态射所构成的类hom(C)。每一个态射f都会有一个“源对象”a和“目标对象”b,且a和b都在ob(C)之内。因此写成f:a -> b,且称f为由a到b的态射。所有a到b的态射所构成的“态射类”,其标记为hom(a,b)或者homC(a,b)。
- 对三个对象a、b和c,二元运算hom(a,b) * hom(b,c) -> hom(a,c)称之为态射复合;f :a -> b 和g : b -> c 的复合写成g . f 或者gf。
此态射复合满足下列公理:
- (结合律)若f:a -> b、g:b -> c且 h:c -> d,则 h.(g.f) = (h.g).f;
- (单位元)对任一对象x,存在一态射1x:x -> x,使得每一态射f:a -> b,都会有1b.f = f = f.1a。此态射称为“x的单位态射”。
时间: 2024-10-07 05:54:06