A category is [may be thought of as] a directed graph in the sense of Serre—so an ordered 4-tuple whose members are, resp, the vertices (objects), the edges or arrows (morphisms), the initial vertex (domain) and terminal vertex (codomain) functions—with
- loops at all vertices (these being the identity morphisms)
- implies (composition of morphisms)
There are some subtleties involved here in trying to apply this, in full generality, to actual collections of objects of mathematical interest, due to things of a set-theoretic nature related to Russell’s paradox, but we shall brush over them here.
A functor is a morphism of categories, i.e. a map between categories which respects the structure restrictions on the edges / arrows. From Mac Lane’s Categories for Working Mathematicians (13): ‘Functors were first explicitly recognized in algebraic topology, where they arise naturally when geometric properties are described by means of algebraic invariants … The leading idea in the use of functors in topology is that or gives an algebraic picture or image not just of the topological spaces, but also of all the continuous maps between them.’
A functor is full if every arrow in the target category comes from an arrow in the source category, i.e. a surjective morphism of categories; a functor is faithful if it is an embedding of directed graphs, i.e. an injective morphism of categories.
A natural transformation between two functors , sometimes called a morphism of functors, is a function from the objects of to arrows in which is equivariant under the arrows in , in other words
‘As Eilenberg-Mac Lane first observed, “category’ has been defined in order to be able to define “functor” and “functor” has been defined in order to be able to define “natural transformation”.’ (Mac Lane 18)