Some categories may possess a functor that behaves like a Hom functor, but takes values in the category
C itself, rather than
Set. Such a functor is referred to as the
internal Hom functor, and is often written as : \left[-\ -\right] : C^\text{op} \times C \to C to emphasize its product-like nature, or as : \mathop\Rightarrow : C^\text{op} \times C \to C to emphasize its functorial nature, or sometimes merely in lower-case: : \operatorname{hom}(-, -) : C^\text{op} \times C \to C . For examples, see
Category of relations. Categories that possess an internal Hom functor are referred to as
closed categories. One has that : \operatorname{Hom}(I, \operatorname{hom}(-, -)) \simeq \operatorname{Hom}(-, -), where
I is the
unit object of the closed category. For the case of a
closed monoidal category, this extends to the notion of
currying, namely, that : \operatorname{Hom}(X, Y \Rightarrow Z) \simeq \operatorname{Hom}(X\otimes Y, Z) where \otimes is a
bifunctor, the
internal product functor defining a
monoidal category. The isomorphism is
natural in both
X and
Z. In other words, in a closed monoidal category, the internal Hom functor is an
adjoint functor to the internal product functor. The object Y \Rightarrow Z is called the
internal Hom. When \otimes is the
Cartesian product \times, the object Y \Rightarrow Z is called the
exponential object, and is often written as Z^Y. Internal Homs, when chained together, form a language, called the
internal language of the category. The most famous of these are
simply typed lambda calculus, which is the internal language of
Cartesian closed categories, and the
linear type system, which is the internal language of
closed symmetric monoidal categories. ==Properties==