La théorie des catégories est une branche des mathématiques abstraites qui consiste à exposer et à décrire la structure sous-jacente des systèmes logiques et mathématiques. Les concepts de la théorie des catégories se sont avérés extrêmement efficaces en tant qu'outils pour structurer à la fois la sémantique des langages de programmation et les programmes eux-mêmes. Diverses structures théoriques de catégorie sont utilisées comme outils d'abstraction en programmation, y compris des foncteurs, des monades et des algèbres.