[参考文献] Haskell/圏論 カテゴリーとは? 「カテゴリー」は、「集合と写像」の概念をより抽象化(簡単化)したものです。おもむろに、図1のように、いくつかの●と、●の間の矢印が集まった図式を考えてみます。 図1 カテゴリーのイメージ それぞれの●は、「a,b,c・・・」で表して、矢印は、「f,g,h,i,j,k・・・」で表します。1組みの●のペアに対して、複数の矢印があっても構いません。また、矢印fがaとbをつなぐ事を次のように表現します。 f :: a -> b 「集合と写像」の勉強をした方なら、それぞれの●は何らかの集合で、矢印は集合間の写像と思うと分かりやすいでしょう。 この時、 f :: a -> b g :: b -> c のように、ある●(ここでは「b」)を介して2つの矢印がつながる場合、これを1つにつなげた矢印、 h = g.f :: a -> c が必ず存在するもの
![Functorを例として、圏論とHaskellの関係を分かりやすく説明してみるテスト - めもめも](https://cdn-ak-scissors.b.st-hatena.com/image/square/09e984caa528913f761188c65ec19c2f687b39e7/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fe%2Fenakai00%2F20130912%2F20130912160722.png)