Real world applications of category theory
The blog entry "Why Category Theory Matters" by Robert Seaton ends with a quite impressive reference list of applications of category theory to the sciences:
- Category theory has been used to study grammar and human language.
- In building a spreadsheet application.
- As a descriptive tool in neuroscience.
- In the analysis and design of cognitive neural network architectures.
- In programming languages, especially Haskell and most famously monads, but also, for instance, a typed assembly language and work on the typed lambda calculus.
- Generating program optimizations.
- To model systems of interacting agents.
- To generalize sorting algorithms.
- To understand collaborative text editing. See also this blog.
- To understand optimal play in sequential games like chess.
- To formalize the notion of algorithm.
- In the study of analogy.
- As “a language for experimental design patterns” and “a new vocabulary in which to think and communicate.”
- In definitions of emergence and discussions of biology.
Category theory is far from the engineering textbook level, for now. On the research level, there are a lot of instances where category theory is applied in engineering context, from electrical to biomedical engineering. Beware though: these usually come from people who try to apply category theory, rather than from people who try to solve an engineering problem and find category theory useful in doing so.
I recently wrote some software to simulate a real world physical system to show that a hardware technology has a chance of doing what we want it to do. That project has grown to a pretty substantial piece of engineering with sizable budget. I wrote the simulation in a programming language whose syntax could be described as the "internal language" of a Cartesian closed category with a bunch of extensions, many of which were categorically motivated.
Sadly I eventually had to switch to Python because I couldn't find libraries for everything I wanted.
The language was Haskell.