>>151の続き

>>140さんのような数学が専攻でないプログラマー屋さんが「それでも圏論を勉強したい」というのならば、まず意識改革が必要だと思います。

どういう事かと言うと、『圏論は(数学的な構造を記述するための)言葉に過ぎない』と予め割り切った意識を持たねばならない。
同じくプログラミングの世界で多少は利用されつつある記号論理が単なる言葉(記述手段)であるようにね。
言い換えると、圏論やそこで登場する様々な概念(定義)そのものに対して具体的なイメージを期待しても無駄という事。

つまり、圏論は言葉だから使い方を知らねばならない。使い方を知るには具体例(語学の勉強ならば文例ですね)を色々と知っておかねばならない。
そうすると、まず圏が登場した切っ掛けは、数学的構造とそれを保存する写像としての準同型の概念それぞれを抽象化して、
対象(object)と射(morphism)となったのだから、圏論の利用での最も基本的なのは数学的構造とその間の準同型という事になる。

そこで、数学的構造の典型は代数構造ですから、それに関するう分かりやすい入門書で代数構造と準同型の実例を学ぶという事になります。
例えば、朝倉書店から出てる志賀浩二さんの『線形代数30講』や『群論への30講』は肩が凝らずに読みやすい。

それだけではくたびれるので、計算機科学の理論で圏がどう使われるかも勉強しよう。
日本語の本では、横内さんの『プログラム意味論』(共立出版)がある。
ずっと品切れだったのが、最近、復刊されるそうなので、既に復刊されているかもうすぐ復刊される。
これを読むと計算機向けの圏論の勉強(それだけならば第4章を読めば良い)だけでなく、Haskellを支えている意味論も勉強できる。

もちろん、清水さんの2章以降も良い。圏論やトポスに関しては分量的にも内容的にも横内さんのより遥かに豊富。

ここまで勉強すると圏論に関する本格的教科書であるMac Laneの『圏論の基礎』を何とか読めるようになると思う。
モナドに関しては、日本語の本ではそのMac Laneの翻訳本しかないだろう。(あったらごめんね)
英語で良ければ計算機屋向けにはAsperti & Longoのテキスト(絶版ですが著者がファイルを公開している)がある。但し、ミスプリントは一杯ある。

おしまい