Teoria categoriilor[1] formalizează structura matematica și conceptele în ceea ce privește o colecție de obiecte și de săgeți (de asemenea, numite morfisme). O categorie are două proprietăți de bază: capacitatea de a compune săgețile prin asociere și existența unei identități săgeată pentru fiecare obiect. Limbajul din teoria categoriilor a fost folosit pentru a formaliza concepte ale altor abstracțiuni de nivel înalt cum ar fi seturi, inele, și grupuri.
Mai mulți termeni utilizați în teoria categoriilor, inclusiv termenul de „morfism”, sunt utilizați în mod diferit de la utilizările lor în restul matematicii. În teoria categoriilor, morfismele se supun la condiții specifice teoriei categoriilor.
Samuel Eilenberg și Saunders Mac Lane au introdus conceptele de categorii, functori, și transformări naturale în 1942-45 în studiul lor de topologie algebrică, cu scopul de a înțelege procesele care păstrează o structură matematică.
Teoria categorie are aplicații practice în teoria limbajelor de programare, în special pentru studiul de monade în programarea funcțională.