モナモナ言うモナド入門

27
モナモナ言うモナド入門 2012.11.17 hiratara

Upload: masahiro-honma

Post on 22-May-2015

2.611 views

Category:

Education


0 download

DESCRIPTION

モナドは友達、こわくないよ。

TRANSCRIPT

Page 1: モナモナ言うモナド入門

モナモナ言うモナド入門 2012.11.17 hiratara

Page 2: モナモナ言うモナド入門

今日話すこと✦ 圏論から目を背けずに 、モナドの定義を淡々と

✦ 図はスライド作るの面倒なので板書で

✦ タイトルは@kazu_yamamoto さんの「モナモナ言わないモナド入門」のオマージュ

Page 3: モナモナ言うモナド入門

今日話すこと

✦ モナドは数学の概念

✦ よほどの数学嫌いでもない限り、回り道をして誤摩化す必要はない

Page 4: モナモナ言うモナド入門

ゃ駄目だ。逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。

逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。

逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ

Page 5: モナモナ言うモナド入門

圏(Category)

Page 6: モナモナ言うモナド入門

圏(Category)

✦ C0 - 対象の集合。A, B, C, ...

✦ C1 - 射の集合。f, g, h, ...

✦ dom: C1 → C0 - 定義域

✦ cod: C1 → C0 - 値域

Page 7: モナモナ言うモナド入門

圏(Category)

✦ id: C0 → C1 - 恒等射

✦ dom (id A) = cod (id A) = A

✦ ∘: C1×C1 → C1 - 合成(C1×C1 := {<g, f>| dom g = cod f})

✦ dom g ∘f = dom f, cod g ∘f = cod g

Page 8: モナモナ言うモナド入門

圏(Category)

✦ h ∘(g ∘f) = (h ∘g) ∘f - 結合律

✦ id ∘ f = f ∘ id = f - 恒等射

Page 9: モナモナ言うモナド入門

関手(Functor)

Page 10: モナモナ言うモナド入門

関手(Functor)

✦ 圏Cと圏Dについて、関手F : C → Dとは、F : C0 → D0 - 対象関数F : C1 → D1 - 射関数の組

Page 11: モナモナ言うモナド入門

関手(Functor)

✦ dom Ff = F(dom f), cod Ff = F(cod f)✦ F id = id✦ F (g ∘f) = Fg ∘ Ff

Page 12: モナモナ言うモナド入門
Page 13: モナモナ言うモナド入門

自然変換(Natural Transformation)

Page 14: モナモナ言うモナド入門

自然変換(Nat)

✦ 関手F, G:C → D について、自然変換α:F→Gとは、α : C0 → D1(dom αA = FA、cod αA = GA)

Page 15: モナモナ言うモナド入門

自然変換(Nat)

✦ 任意のCの射f : A → Bについて、αB∘Ff = Gf∘αA

Page 16: モナモナ言うモナド入門

補足)垂直合成

✦ F, F’,F’’:C→C’α:F→F’, β:F’→F’’について、β.α:F→F’’を(β.α)A := βA∘αAと定義。

Page 17: モナモナ言うモナド入門

水平合成

✦ F, F’:C→C’、G, G’:C’→C’’

α:F→F’, β:G→G’について、β∘α:FG→F’G’を(β∘α)A := βF’A∘GαA (= G’αA∘βFA)と定義。

Page 18: モナモナ言うモナド入門
Page 19: モナモナ言うモナド入門

モノイド(Monoid)

Page 20: モナモナ言うモナド入門

モノイダル圏

✦ 圏C、双関手□:C×C→C、対象I、自然同型α:(-□-)□-→-□(-□-)、λ:I□-→id、ρ:-□I→idについて、

Page 21: モナモナ言うモナド入門

モノイダル圏

✦ (C, □, I, α, λ, ρ)がモノイダル圏とは、任意の対象W, X, Y ,Zについて、W□α(X, Y, Z)∘α(W, X□Y, Z)∘α(W, X, Y)□Z=α(W, X, Y□Z)∘α(W□X, Y, Z)X□λ∘α(X, I, Y) = ρ□Y

Page 22: モナモナ言うモナド入門

モノイド

✦ モノイダル圏 (C, □, I, α, λ, ρ)において、対象M、射µ:M□M→M、η:I→Mがモノイドとは、µ∘id□µ∘α(M, M, M) = µ∘µ□idµ∘η□id = λ, µ∘id□η = ρ

Page 23: モナモナ言うモナド入門
Page 24: モナモナ言うモナド入門
Page 25: モナモナ言うモナド入門

モナド(Monad)

Page 26: モナモナ言うモナド入門

モナド

✦ 関手 T:C→C、自然変換η:id→T、µ:TT→T

(T, η, µ)がモナドとは、µ∘Tµ = µ∘µTµ∘Tη = µ∘ηT = id

Page 27: モナモナ言うモナド入門