  Category theory reveals how different kinds of structures are related to one another. For instance, in algebraic topology, topological spaces are related to groups (and modules, rings, etc.) in various ways (such as homology, cohomology, homotopy, K-theory). As noted above, groups with group homomorphisms constitute a category. Eilenberg &amp; Mac Lane invented category theory precisely in order to clarify and compare these connections. What matters are the morphisms between categories, given by functors. Informally, functors are structure-preserving maps between categories. Given two categories \(\mathbf{C}\) and \(\mathbf{D}\), a functor \(F\) from \(\mathbf{C}\) to \(\mathbf{D}\) sends objects of \(\mathbf{C}\) to objects of \(\mathbf{D}\), and morphisms of \(\mathbf{C}\) to morphisms of \(\mathbf{D}\), in such a way that composition of morphisms in \(\mathbf{C}\) is preserved, i.e., \(F(\boldsymbol{g} \circ \boldsymbol{f}) = F(\boldsymbol{g})  \circ F(\boldsymbol{f})\), and identity morphisms are preserved, i.e., \(F(\mathbf{id}_X ) = \mathbf{id}_{FX}.\) It immediately follows that a functor preserves commutativity of diagrams between categories. Homology, cohomology, homotopy, K-theory are all example of functors.