applicative 函手は strong lax monoical 函手

前回 (圏論における applicative functor) の続きです.

タイトルから想像できる通り, 調べる対象が applicative 函手から strong lax monoidal 函手に変わっただけで, まだ完全には理解してません.

読んだ論文

酒井さんからご紹介いただいた “Applicative Programming with Effects” [Conor_and_Ross_2008] という論文を読んでみます.

Abstract に “In this paper, we introduce Applicative functors” とあるので, この論文で applicative functor が初登場したのかな??

論文の構成

節の内容を要約するとこんな感じになります.

  1. Introduction

    applicative が隠れているところをいくつか紹介

  2. The Applicative class

    Haskell の Applicative 型クラスの定義

  3. Traversing data structures

    Traversable 型クラスは Applicative 型クラスから作れる

  4. Monoids are phantom Applicative functors

    Monoid 函手はファントム (亡霊?) Applicative 函手

  5. Applicative versus Monad?

    ApplicativeMonad の関係

  6. Applicative functors and Arrows

    Applicative 函手と Arrows の関係

  7. Applicative functors, categorically

    Applicative を圏論の視点で見る

    一番知りたかった内容

  8. Conclusion

    まとめ

    Applicative は色んなものの抽象化

    モナドとかコモナドとかアローとかアプリカティブとか圏論の構造の種類がめっちゃ増えてるけど, それで怖がらせるとか不安にさせるのはよくないよね. 表記法がそれぞれ違っててごちゃごちゃしてるのが良くないから, なんとか再利用できるようにしよう. この論文では [| f u_1 ... u_n |] という表記で書いてみたよ.

    みたいなことも書いてあって面白い.

    (ここで使われている mathbb っぽい括弧は, \(\LaTeX\) では stmaryrd パッケージ [stmaryrd]\usepackage{stmaryrd} と読み込むと \llbracket, \rrbracket と使えるそうです.)

ApplicativeMonoidal と同等

7 節の内容です.

「同等」という言葉は,「 Applicative を使って Monoidal を定義することができるし, 逆も同様」という意味です. その定義方法がこの節に書かれています.

とは言え,「 Applicative を調べてたら Monoidal ってのが出てきたぞ, これ何だ?」状態で困ってしまいます.

この節を読んでいくと,

Applicative が満たすべき Applicative 則は圏論では “lax monoidal functor” の性質であり, Functor (ApplicativeFuncor) が満たすべき Functor 則は圏論では “tensorial strength を持つ” という性質なので, 両方を合わせて Applicative は圏論における “strong lax monoidal functor” だ」

という内容が書かれており, “lax monoidal functor with tensorial strength” について調べていけば良いようです.

俺たちの戦いはこれからだ!

というわけで, 内容は理解できてないけれど, 少しだけ前進しました. 次は lax monoidal functor with tensorial strength をキーワードに調べていきます.

参考文献

[Conor_and_Ross_2008]Mcbride, Conor, and Ross Paterson. “Applicative Programming with Effects.” J. Funct. Prog. Journal of Functional Programming 18.01 (2008): 1-13. Web. <http://staff.city.ac.uk/~ross/papers/Applicative.html>.
[stmaryrd]Gibbons, Jeremy, Alan Jeffrey, and Chris Rowley. “The St Mary’s Road Symbol Font.” (n.d.): n. pag. The St Mary’s Road Symbol Font. Mar. 2004. Web. 20 Sept. 2015. <http://texdoc.net/texmf-dist/doc/fonts/stmaryrd/stmaryrd.pdf>.