[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