Basic concepts
📄️ Category
To define what a category is, we need to clarify a few terms. In many cases, we will use the term set, a collection of unique elements, and class for collections of sets. The use of the term class may depend on the foundational context, such as Zermelo–Fraenkel set theory or von Neumann–Bernays–Gödel set theory. For simplicity, we will use the term set if its elements have no additional properties and the term class if the elements represent structures with properties. Thus, we can define what a category is.
📄️ Functor
Programmers are familiar with the concept of functor and can recognize generic types such as lists as functors in object-oriented languages because they usually have a map/fmap/select method that transforms a list of type List<int> in a list List<string> through a function $$f : int \rightarrow string$$.
📄️ Natural transformations
In the previous section, we discussed functors, but even more important than functors in category theory are natural transformations. Informally, a natural transformation is a mapping between functors; through a natural transformation, one functor is transformed into another.
📄️ Tipuri de morfisme
Când lucră în teoria categoriilor dar și alte teorii matematice nu avem de multe ori noțiunea de egalitate, însă avem de cele mai multe ori noțiunea de izomorfism care este cel puțin la fel de puternică. În cazul mulțimilor și a funcțiilor
📄️ Construcții universale
În teoria categoriilor ne vor interesa obiecte cu proprietăți speciale. De obicei, ne vom pune întrebarea care dintre aceste obiecte au proprietățile cele mai "mari", respectiv cele mai "mici", acestea fiind obiecte universale cu aceste proprietăți. Chiar dacă pare neintuitiv modul cum ne punem
📄️ Functori adjuncți
Un lucru care este foarte important de discutat în teoria categoriilor este echivalența între categorii. Pentru categorii nu avem o definiție strictă pentru echivalență cum ar fi o corespondență unu la unu între mulțimea de obiecte și cea a
📄️ Lema lui Yoneda
Cel mai important rezultat în teoria categoriilor este lema lui Nobuo Yoneda, aceasta o vom demonstra în cadrul categoriilor local mici. Această lemă stă la bază a ce numim (co)end calculus pentru a determina obiecte cu proprietăți universale
📄️ Algebre
Cuvântul "algebră" poate avea mai multe semnificații în matematică dar în contextul teoriei categoriilor când spunem "algebră" ne vom referii în general la F-algebre sau algebre pentru endofunctori dacă nu se specifică altfel.
📄️ Monade și comonade
O noțiune care este de neevitat în programarea funcțională este aceea de monadă. În principiu, o monadă este un functor care poate condensa mai multe aplicări ale sale într-o singură aplicare într-un mod monoidal.