profunctor
【 profuncor は行列とよく似ている 】 このセッションでは、線形代数の行列に相当するものが、カテゴリー論ではどのようなものになるかを考えます。 2つのカテゴリー𝖢と𝖣が与えられたとき、カテゴリー論での行列の類似物はprofunctorと呼ばれるもので、集合のカテゴリーSet に値を取るfunctor $f : C^{op} \times D \to Set$ になります。 前にも述べたように、肩について「op」はfunctorのvarianceを示すために使われています。正確を期すためには必要なのですが、最初に見るときには無視しても構いません。ここで説明する線形代数とのアナロジーでは、行と列の間の一種の転置を示すものと考えることができます。 もう少し、詳しく見ていきましょう。 もしprofunctor $f : C^{op} \times D \to Set$ の定義域の二つのカテゴリー $C^{op} とD$が離散カテゴリーで有限集合であるならば、profunctorは単に二つの要素のペアでindexされた集合の集まりです。それは数字の代わりに集合をエントリーとする行列です。 簡単なcurrying で、C, D上のオブジェクト c, d に対する定義、$c \mapsto f(c, ,-), d \mapsto f(-,d)$ で、profunctor fは、ペアのfunctor $f(c,−) : C \to (Set^D)^{op}と f(−,d) : D \to Set^{C^{op}}$を定義することがわかります。 ( "op" をないものとしてみれば、このfunctor のペアは、 $f(c,−) : C \to Set^D$ と $f(−,d) : D \to Set^C$ のペアになります。確かにこう考えるとわかりやすいです。) functor $f(c,− )$ は行列fのc行目の集合として描くことができます。 このfunctorは functor $D \to Set$を定義し、このfunctorでDのj番目のオブジェクトは、行 $f(c,− )$ のj番目のオブジェクトの集合にマップされます。 同様に、functor $f(− ,d)$は行列fのd列目の集合を表します。 カテゴリーが、Yoneda