bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

プログラマーのための圏論(特論)

圏論をビジュアルに表現する(4)-随伴とモナドの関係

6.5 随伴とモナド ストリング・ダイアグラムを用いて、随伴からモナドが導き出されることを示そう。前述したように随伴は、二つの圏\(\mathcal{C,D}\)と関手\(L:\mathcal{D} \rightarrow \mathcal{C}, R:\mathcal{C} \rightarrow \mathcal{D}\)で構成され…

圏論をビジュアルに表現する(3)-モナド

6.4 モナド Haskellを学んだときに、多くの人がこれは何だろうと思ったのが、モナドだと思う。恐らくは入出力のところで出会ったことと思うが、なんでそのまま出力されないのと思ったことだろう。話はそれるが、昨年は、九州、東北、北海道にある縄文時代…

圏論をビジュアルに表現する(2)-随伴

6.3 随伴 随伴は、圏論を代表する概念である。これは、「二つの圏が全く同じとは言わないまでもとても似ている」という考え方を与える。二つの圏\( \mathcal{C,D} \)が与えられた時に、\(LR=I_\mathcal{C}\)と\(RL=I_\mathcal{D}\)を満たすような関手\(L:…

圏論をビジュアルに表現する(1)-ストリング・ダイアグラム

6.1 圏の圏 中学に入学すると、算数に代わって数学という教科が登場する。計算問題が嫌いだった私は、嫌なことから解放してくれるような、楽しいパラダイムがきっと待ち受けているのだろうと、過剰に期待した。しかし、真っ先に学んだのは、三角形の合同…

圏論をデータベースに応用する(2)

5.4 セッターとゲッターの関手を一般化する 前回の記事の中で、説明の中心となっていた\(Store \ a \)という関手は、代数的データ型を用いて、 data Store a s = (a, a -> s) で定義した。しかしこれはデータベースでのセッターとゲッターを分かりやすく…

圏論をデータベースに応用する(1)

5 随伴とデータベース これまで、圏論の理論的な面を重視しながら、重要な定理である随伴まで学んできた。これだけ学んだのだから素晴らしい応用に出会えるはずだ、と考えるのは当然のことだ。ここでは、情報技術の中でも特に重要なデータベースとの関連に…

数学的帰納法によるプログラミングを修得するためにF-代数を攻略する

4. F-代数 今回はあまり聞きなれてはいないと思われるF-代数( F-algebra )について学んでみよう。代数という名が示すとおり、これは、半群、モノイド、群、環などの代数を表現するための重要な役割を担っているが、それにもまして、数学的帰納法による再帰…

モノイドを攻略する

3. モノイドとコモノイド 今回はモノイド(monoid)と、そして、その双対であるコモノイド(comonoid)を説明しよう。モノイドという用語を使うと難解だと感じる読者も多いことだろうが、小学校以来学んできた足し算や掛け算などの多くの二項演算に関するもの…

コモナドを攻略する

2.コモナド 今回の記事はコモナド(余モンドとも言われる)だ。モナドはあちらこちらで出会うことが多いが、コモナドについての説明はそれほど多くない。今回の記事でも示すが、実はコモナドの概念はとても面白く、現実の世界の中でこれはコモナドではと思う…

モナドを攻略する

1.モナド クリスマスパーティーは大きくなった孫たちが集まりとても賑やかだった。今年は、ターキーを2羽焼いた。例によって、ブライン液につけ、ジューシーな味を楽しんだ。今年のターキー。焦げ具合が違うのは、250度で10分焼いた後、左側を170度、右を1…