[gambit-list] Re: New types

Bill Richter richter at math.northwestern.edu
Mon Feb 14 22:13:11 EST 2005


   A functor is I think just a first-class function, either named or
   anonymous, e.g. a (lambda (...) ...)

Here's the mathematical definition of functor, and I'll be
disappointed if David R can't rope this in to what he's doing:

A Category is a gadget that has both objects and morphism between
objects.  We require that there there be an identity morphism 1_X
between any object X and itself, and given two morphisms
alpha: X ---> Y and beta: Y ---> Z, there is a composition 
beta * alpha : X ---> Z
and this composition must be associative, i.e. 
gamma * (beta * alpha) = (gamma * beta) * alpha

A functor F: C ---> D is a map between 2 categories C & D preserving
the structure.  So for ever object X in C, we have an object F(X) in
D, and for every morphism
alpha: X ---> Y in C, we have a morphism 
F(alpha): F(X) ---> F(Y) in D
and we require that
F(1_X) = 1_F(X) and
F(beta * alpha) = F(beta) * F(alpha) 

I called a category a gadget because we don't insist that Ob(C), the
collection of objects of C, form a set.  If it does, then we call C a
small category.  One often considers large categories, such as the
category of sets, morphisms being functions between sets.  We do
insist that the morphisms between 2 objects, written Hom_C(X, Y), is a
set.  If it's not a set, it means it's "too big".

Now I've heard that category theory has become popular (if not
actually useful :)) in Computer Science.


More information about the Gambit-list mailing list