Easy to understand examples of category theoretic theorems that are useful Every now and then I hear a category theorist saying that category theory is a unifying language for mathematics, and that category theory proves general theorems that some people would prove separately for each concrete case.
Can you guys give me easy to understand examples of such general theorems that some people would prove separately for each concrete case? This is because I want to get a feeling for the usefulness and powerfulness of category theory via examples. Note that general discussion on why category theory is useful was already given here.
 A: Not a theorem, but a theory! The theory of Galois Categories explains why the study of covering spaces in algebraic topology and the study of algebraic field extensions is so similar. In fact, going a step further, one can also try to understand the Galois theory of differential field extensions.
A: Here's one of the first examples I personally found useful, and which I employed constantly throughout my mathematical education. The basic fact is that left adjoint functors preserve colimits and right adjoint functors preserve limits. Random examples off the top of my head:


*

*An extremely concrete example: the inclusion of the poset $\mathbb{Z}$ into the poset $\mathbb{R}$ has both a left and a right adjoint, given by the ceiling and floor functions respectively (exercise). This means that it preserves both limits and colimits, which for posets are meets / infima and joins / suprema respectively. 

*The free group functor is a left adjoint, so sends disjoint union (the coproduct of sets) to free product (the coproduct of groups). For example, the free group $F_2$ on two generators is the free product of two copies of the free group $\mathbb{Z}$ on one generator.

*More generally, the forgetful functor from a category of algebraic objects (groups, rings, modules) to sets typically has a left adjoint, the corresponding free functor. This means that the forgetful functor preserves limits, so limits of algebraic objects, when they exist, can be computed as limits of sets. 

*The inclusion of sheaves into presheaves is a right adjoint, so preserves limits. This implies that limits of sheaves, when they exist, can be computed as limits of presheaves, which are easy to compute because they're computed pointwise. (Colimits are trickier.)

*Tensor product, in most of its incarnations, is a left adjoint, so preserves colimits. For example, extension of scalars preserves direct sums and cokernels. This means it is left exact and consequently has right derived functors. 


The concept of adjoint functors is useful for much more than this, though. It trains you to look for which mathematical constructions can be expressed as functors, so that you can then ask the question of whether they have adjoints, which if they exist may be interesting new mathematical constructions. In other words, the concept of adjoint functors is a fruitful source of questions in addition to answers. 
A: Here's a categorical proof/construction of the geometric realization of a simplicial set as left adjoint to the singular simplicial set. 
I will not give a single theorem of category theory but I'll use general categorical facts to do this - this construction is very important in algebraic topology, and seeing that it actually follows from "abstract nonsense" can be illuminating. The beginning of my answer is mostly about topology; and my answer is essentially one big example. 
Recall that a simplicial set is a functor $\Delta^{op}\to \mathbf{Set}$, where $\Delta$ is the category of nonempty finite ordinals and weakly order-preserving maps. Expressed this way it doesn't seem very natural and it looks like I'm using categories for categories, which may not be what you're looking for. But actually simplicial sets are combinatorial abstractions of geometric simplicial complexes, e.g. a triangle $\Delta^2$. 
The basic example is the following (and the one I'm interested about here) : given a space $X$, you have a nice simplicial set associated to it, the singular simplicial set. It's given on objects by $n\mapsto \hom_{\mathbf{Top}}(\Delta^n, X)$ where $\Delta^n$ is the geometric $n$-simplex, i.e. the convex hull of the canonical basis of $\mathbb{R}^{n+1}$ (and $\hom_{\mathbf{Top}}(A,B)$ is the set of continuous maps $A\to B$). So here an $n$-simplex of this simplicial set is a geometric $n$-simplex living inside $X$. Let's denote this simplicial set by $Sing(X)$.
For nice spaces, $Sing(X)$ contains most of the information we want about $X$, homotopy-theoretically. What does this mean? It means that, in some sense we can reverse the process: start from a simplicial set $S$, create a space $|S|$, such that for spaces $X$, $|Sing(X)|$ "looks like" $X$, and "looks a lot like" $X$ for nice spaces $X$. This is what we want geometric realization to mean. 
So we want $Sing(X)$ to be the simplicial set "best approximating $X$" (or $|S|$ to be the space best approximating $S$). It turns out that that's what adjoint functors do very often. 
To start with the categorical stuff, let's see what we can try to do. We want $|-|$ to be adjoint to $Sing$: but which adjoint, left or right ? Well it's very easy to see that $Sing$ preserves limits but not colimits in general, so if it is to be adjoint, it must be a right adjoint, hence $|-|$ must be its left adjoint (here we use the general fact that adjoints preserve (co)limits, depending on which adjoint they are). 
Given a simplicial set $Y$, let's compute $\hom(Y,Sing(X))$. A morphism of simplicial sets is a natural transformation by definition, so this is $Nat(Y,Sing(X))$. 
By general categorical stuff, this is isomorphic (naturally in $Y$ and $X$) to $\displaystyle\int_{n\in \Delta^{op}} \hom(Y_n, Sing(X)_n)$ (the end). But $\hom(Y_n, Sing(X)_n) = \hom (Y_n, \hom_{\mathbf{Top}}(\Delta^n, X))= \displaystyle\prod_{y\in Y_n}\hom_{\mathbf{Top}}(\Delta^n, X)$, which is, because $\mathbf{Top}$ has coproducts, naturally isomorphic to $\hom_{\mathbf{Top}}(\displaystyle\coprod_{y\in Y_n}\Delta^n, X)$. Now an easy computation in $\mathbf{Top}$ shows that $\displaystyle\coprod_{y\in Y_n}\Delta^n\cong Y_n\times \Delta^n$ where $Y_n$ has the discrete topology; therefore $\hom(Y, Sing(X)) \cong \displaystyle\int_{n\in\Delta^{op}} \hom_{\mathbf{Top}}(Y_n\times \Delta^n, X)$ . 
A general categorical theorem about ends and coends tells us that, since $\mathbf{Top}$ is cocomplete, it has all coends, and $\displaystyle\int_{n\in\Delta^{op}} \hom_{\mathbf{Top}}(Y_n\times \Delta^n, X)\cong \hom_{\mathbf{Top}}(\displaystyle\int^{n\in \Delta^{op}} Y_n\times \Delta^n, X)$. 
This tells us that $Y\mapsto \displaystyle\int^{n\in \Delta^{op}} Y_n\times \Delta^n$ is a left adjoint to $Sing$. How do we know we haven't made a specific choice ? Well the Yoneda lemma tells us that adjoints are unique up to isomorphism, so if you have another choice for $|-|$, it's actually essentially the same as mine. 
But the point is that we know how to compute coends in $\mathbf{Top}$, so we now have an explicit description of $|Y|$: essentially we take one $n$-simplex per element $y\in Y_n$ and we glue these simplices together according to the degeneracy and face maps of $Y$. 
So we used general knowledge about ends and coends, coproducts, and the Yoneda Lemma to prove that we have a geometric realization that satisfies our requirements, and that it's the only one that can do so. 
A: Trying to do even straightforward diagram chases in Abelian categories without the Freyd-Mitchell embedding theorem is, in my experience, pretty miserable. For example, it's not obvious to me that I can diagram chase in terms of elements with sheaves of abelian groups on a space, but lo and behold, the theorem says I can. Sheaves are best phrased in terms of category theory, but they don't have to be, so I'd say this qualifies as an application of category theory outside itself. 
I think that avoiding proving the same thing over and over is not really that essential a function of category theory. The utility is more in being able to express ideas that otherwise wouldn't be legible. For example: how could you conceive of the many, many examples of adjunctions as being manifestations of the same phenomena without the language of adjunctions? 
Having good descriptions of mathematical phenomena also makes them  easier to detect: I know when I see related functors going back and forth I should suspect the presence of an adjunction. Without that language, I would probably just never notice them. 
