# Functor

Na matemática, mais precisamente teoria das categorias, um functor ou funtor é um mapeamento entre categorias, preservando domínios, contradomínios, identidades e composições, analogamente a como, por exemplo, um homomorfismo de grupos preserva o elemento neutro e a operação do grupo.
Segundo Saunders Mac Lane, o conceito de functor foi, pela primeira vez, reconhecido na topologia algébrica, no estudo de grupos de homologia.

## Definição

Dadas categorias C e D, um functor de C até D, escrito F : C → D, consiste
* de uma atribuição, a cada objeto x ∈ C, de um objeto F(x) ∈ D,
* de uma atribuição, a cada morfismo f : x → y, de um morfismo F$_{x,y}$(f) = F(f) : F(x) → F(y), (equivalentemente, dom(F(f)) = F(dom(f)) e cod(F(f)) = F(cod(f)))
satisfazendo
* F(1$_x$) = 1$_{F(x)}$ para cada objeto x ∈ C,
* F(g ∘ f) = F(g) ∘ F(f) para cada dupla de morfismos f : x → y e g : y → z.
Chama-se esse F : C → D mais explicitamente de functor covariante. Há, também, o conceito de functor contravariante de C até D, atribuindo, a cada morfismo f : x → y, um morfismo G(f) : F(y) → F(x), satisfazendo G(1$_x$) = 1$_{G(x)}$ e G(g ∘ f) = G(f) ∘ G(g); os functores contravariantes de C até D estão em correspondência biunívoca com os functores covariantes C$^{op}$ → D, em que C$^{op}$ denota a categoria oposta a C.
Por vezes, em vez de se dizer que F é functor (covariante ou contravariante), diz-se que a atribuição x ↦ F(x) é functorial.

### Exemplos

* Dadas A e B categorias, com objeto b ∈ B, há o functor constante Δ(b) : A → B, com atribuição$\Delta (b)(x{\xrightarrow {f}}y)=b{\xrightarrow {1_{b}}}b.$
* Se Set denota a categoria dos conjuntos pequenos, há Q functor contravariante de Set a Set, com atribuição$Q(A{\xrightarrow {f}}B)=\operatorname {P} (B){\xrightarrow {S\mapsto f^{\leftarrow }(S)}}\operatorname {P} (A),$em que P(A) é o conjunto de partes de A, e f$^←$(S) é a pré-imagem de S por f.
* Se K-Vet denota a categoria dos espaços vetoriais pequenos sobre um corpo K, há functor contravariante (_)$^*$ de K-Vet de K-Vet, com correspondência$(U{\xrightarrow {\Lambda }}V)^{*}=V^{*}{\xrightarrow {f\mapsto f\circ \Lambda }}U^{*},$em que U$^*$ = hom$_K$(U, K) denota o espaço dual a U.
* A atribuição de cada espaço com base (X, x) ao correspondente grupo fundamental π$_1$(X, x) é functorial.

### Bifunctor

Um bifunctor é um functor cujo domínio é um produto de categorias B × C. Dado bifunctor F : B × C → D e objeto c ∈ C, o functor F(–, c) : B → D é definido por:$F(-,c)(b{\xrightarrow {f}}b')=F((b,c){\xrightarrow {(f,1_{c})}}(b',c)).$De forma análoga, há o functor F(b, –) : C → D.

### Categoria de categorias e functores

Para cada U universo de Grothendieck, há a categoria $U{\text{-}}{\mathsf {Cat}}$ (ou, brevemente, ${\mathsf {Cat}}$) cujos objetos são as categorias que pertencem a U e cujos morfismos são os functores entre essas categorias.
Um conceito similar é a categoria de functores D$^C$, cujos objetos são os functores C → D, e cujos morfismos são as transformações naturais entre esses functores.

## Functor hom

Seja $C$ uma categoria. Denotando-se por ${\textsf {Set}}$ uma categoria de conjuntos suficientemente grande, há functor $\mathrm {hom} :C^{\mathrm {op} }\times C\rightarrow {\textsf {Set}}$ em que $\mathrm {hom} (X,Y)$ é o conjunto de morfismos $X\rightarrow Y$, e, dados $f:X'\rightarrow X$, $g:Y\rightarrow Y'$ morfismos em $C$, $\mathrm {hom} (f,g)=g\circ {\text{-}}\circ f=(k\mapsto g\circ k\circ f):\mathrm {hom} (X,Y)\rightarrow \mathrm {hom} (X',Y').$