モナドとは自己関手の圏におけるモノイド対象である
Philip Wadlerが言ったらしい
モナドとは自己関手の圏におけるモノイド対象である。なにか問題でも?
モナドの定義とモノイド対象の定義の類似性をわかりやすく示したいmrsekut.icon
そのためにもモノイド対象をもうちょいちゃんと理解しないといけない
圏$ \mathscr{A}において
関手$ T:\mathscr{A}\to\mathscr{A}
自然変換$ \eta:1\to T
自然変換$ \mu:TT\to T
の3つ組$ (T,\eta,\mu)がモナドであるとする
「自己関手の圏」
自己関手圏Fun$ \mathscr{A}^\mathscr{A}のこと
関手$ Tはこの$ \mathscr{A}^\mathscr{A}の対象
「モノイド対象」
まずはじめに$ \mathscr{A}^\mathscr{A}の演算にモノイド積を当てはめるなどして、$ \mathscr{A}^\mathscr{A}をモノイダル圏として見る必要がある
「自己関手同士の合成」を「モノイド積」に当てはめることで、$ \mathscr{A}^\mathscr{A}をモノイド圏としてみることができる
どうあてはめるか #??
M(M(X))をM◦M(X)と見ることができるので
M(M(X))→M◦M(X)は、(このMは関手)
M×M→Mである(このMは型)
モノイド対象の定義に沿って、自己関手のやつを対応させればいい
table:対応
モノイド対象 自己関手圏におけるモノイド対象
M 自己関手T
μ: M⊗M→M μ: T^2→T
η: I→M η: 1→T
$ 1は$ \mathscr{A}^\mathscr{A}の単位対象
だが、これはなに #??
モナドの定義を見る
圏$ \mathscr{A}上のモナドとは、3つ組$ (T,\eta,\mu)
自己関手$ T:\mathscr{A}\to\mathscr{A}
自然変換$ \eta:\mathrm{id}\Rightarrow T
以下の図式を可換にする
https://gyazo.com/f2d657f137deb0eff7281c5cbb618a30
モノイド対象の単位律の図とにていることを強調したいmrsekut.icon
自然変換$ \mu: T\circ T\Rightarrow T
以下の図式を可換にする
https://gyazo.com/6dc2562da9eff8ecf1718637a61de8d4
こっちはモノイド対象の何と関連している #??
$ TTTAは括弧を明示的に書くなら$ T(T(T(A)))
モナド則
Haskellと対応させるときは、ポイントフリーなものではないほうを参照したほうがわかりやすいmrsekut.icon
これの下の方の図
https://qiita.com/norkron/items/aff3ce925edc6be74923#モナド
http://bitterharvest.hatenablog.com/entry/2017/10/08/102618
モナド、あるいは自己関手の圏におけるモノイド対象について - Nao Minami's Blog
https://qiita.com/myuon_myon/items/7e20c4b3af83597547d8
https://tnomura9.exblog.jp/14726307/