Transformări naturale
În secțiunea anterioară am discutat despre functori dar mai important decăt funtori în teoria categoriilor sunt transformările naturale. Informal o transformare naturală este mapare între functori, print-o transformare naturală un functor este transformat în altul.
Definiție: Transformare naturală
Dându-se două categorii , și doi functori , , o transformare naturală este o colecție de morfisme care pentru , numită componenta lui în , astfel încât pentru oricare morfism următoarea diagramă comută:
Când ne referim că acestă diagramă comută ne referim la faptul că perechile de morfisme se compun pe diagonală în același morfism, astfel trebuie să fie satisfacută următoarea relație:
Compunere
Și în cazul transformărilor naturale acestea se pot compune ca morfismele și functorii. Având functorii , , și transformările naturale , atunci va exista mereu o transformare naturală care are componentele .
Legătura cu programarea
În programare se folosesc des transformările naturale deși nu sunt știute sub acest nume. Cea mai uzuală transformare naturală folosită în programare este funcția map/fmap/select a tipurilor generice care impune o tranformare naturală de la functor identitate către aplicarea unui tip generic care implementează acesta functie. De exemplu, putem vedea cum se aplică acest lucru la clasa generică pentru liste în diagrama următoareȘ
Morfismele verticale care sunt compentele transformării naturale reprezintă aplicarea tipului generic peste tipurile initiale iar funcția map este cea care adaugă existența morfismelor orizontale astfel încât diagrama să comute.