5 ms·
Where do adjoint functors occur in CS? They occur in advanced algebra, and they occur in topology, but where else? And indeed, the fact that they preserve limit
by ogogmad 4y ago
Where do adjoint functors occur in CS? They occur in advanced algebra, and they occur in topology, but where else? And indeed, the fact that they preserve limits/colimits may help speed up communication and thinking. But I'm not seeing CS connections here.
https://en.wikipedia.org/wiki/Adjoint_functors https://en.wikipedia.org/wiki/Adjoint_functors
- solomatov 4y agoThey literally occur everywhere. Here're a couple more examples, not from what you said: - Adjoint between integers and real numbers: https://math.stackexchange.com/questions/598075/find-the-left-and-right-adjoints-of-the-inclusion-of-integers-into-real-numbers https://math.stackexchange.com/questions/598075/find-the-lef... - Adjoint between lattices in abstract interpretation. I.e. abstraction relation between abstract and real interpreter.
- ogogmad 4y agoThe first example is trivial, and serves as an illustrative but useless example (which I don't need). I don't know enough about the second example.
- solomatov 4y ago>The first example is trivial, and serves as an illustrative but useless example (which I don't need). Yep. Most of the example of adjoints trivial if you know the field of math where they are used. The interesting part is why it happens almost everywhere.
- solomatov 4y agoAnother one is a free monoid. With pair of forgetful/free monoid functors. It sounds a bit mathematical but for type T free monoid is a List<T> in a programming language with generics.
- ogogmad 4y agoBut why do you need category theory to understand lists and monoids? They're so basic and elementary.
- solomatov 4y agoYou don't. You don't need category theory to understand, you need it to unify your understanding. P.S. I don't believe programmers need to know category theory. However, it's beautiful by itself like many art.