Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

モナモナ言うモナド入門

4,598 views

Published on

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

Published in: Education
  • Be the first to comment

モナモナ言うモナド入門

  1. 1. モナモナ言うモナド入門 2012.11.17 hiratara
  2. 2. 今日話すこと✦ 圏論から目を背けずに 、 モナドの定義を淡々と✦ 図はスライド作るの面倒なので板書で✦ タイトルは@kazu_yamamoto さんの 「モナモナ言わないモナド入門」の オマージュ
  3. 3. 今日話すこと✦ モナドは数学の概念✦ よほどの数学嫌いでもない限り、 回り道をして誤摩化す必要はない
  4. 4. ゃ駄目だ。逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄目だ。 逃げちゃ駄
  5. 5. 圏(Category)
  6. 6. 圏(Category)✦ C0 - 対象の集合。A, B, C, ...✦ C1 - 射の集合。f, g, h, ...✦ dom: C1 → C0 - 定義域✦ cod: C1 → C0 - 値域
  7. 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
  8. 8. 圏(Category)✦ h ∘(g ∘f) = (h ∘g) ∘f - 結合律✦ id ∘ f = f ∘ id = f - 恒等射
  9. 9. 関手(Functor)
  10. 10. 関手(Functor)✦ 圏Cと圏Dについて、関手F : C → Dとは、 F : C0 → D0 - 対象関数 F : C1 → D1 - 射関数 の組
  11. 11. 関手(Functor)✦ dom Ff = F(dom f), cod Ff = F(cod f)✦ F id = id✦ F (g ∘f) = Fg ∘ Ff
  12. 12. 自然変換(Natural Transformation)
  13. 13. 自然変換(Nat)✦ 関手F, G:C → D について、 自然変換α:F→Gとは、 α : C0 → D1 (dom αA = FA、cod αA = GA)
  14. 14. 自然変換(Nat)✦ 任意のCの射f : A → Bについて、 αB∘Ff = Gf∘αA
  15. 15. 補足)垂直合成✦ F, F’,F’’:C→C’ α:F→F’, β:F’→F’’について、β.α:F→F’’を (β.α)A := βA∘αA と定義。
  16. 16. 水平合成✦ F, F’:C→C’、G, G’:C’→C’’ α:F→F’, β:G→G’について、β∘α:FG→F’G’を (β∘α)A := βF’A∘GαA (= G’αA∘βFA) と定義。
  17. 17. モノイド(Monoid)
  18. 18. モノイダル圏✦ 圏C、双関手□:C×C→C、対象I、 自然同型α:(-□-)□-→-□(-□-)、 λ:I□-→id、ρ:-□I→idについて、
  19. 19. モノイダル圏✦ (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
  20. 20. モノイド✦ モノイダル圏 (C, □, I, α, λ, ρ)において、 対象M、射µ:M□M→M、η:I→Mが モノイドとは、 µ∘id□µ∘α(M, M, M) = µ∘µ□id µ∘η□id = λ, µ∘id□η = ρ
  21. 21. モナド(Monad)
  22. 22. モナド✦ 関手 T:C→C、自然変換η:id→T、µ:TT→T (T, η, µ)がモナドとは、 µ∘Tµ = µ∘µT µ∘Tη = µ∘ηT = id

×