「圏論」は関数プログラミングの「モナド」に役立つ。入門PDF等のリンク集

数学の解説コラムの目次へ


圏論を学ぶ目的は,HaskellやScalaなどの関数型プログラミング言語をよく理解するため,としてよい。

モナドを実装するために必要という応用がある。

オンラインで圏論を学ぶための教科書:

「圏と関手入門」
http://www.math.nagoya-u.ac.jp/~hasim...

  • 100ページ以上あるオンライン入門書

役に立つ読み物

圏論の初歩を理解するためのWeb上での無料の読み物:

圏論を小学生にも分かるように説明するスレ | 2ch勉強・学問まとめ
http://gakumon-matomeread.doorblog.jp...

  • 圏を「対象」と「射」で説明するのは冗長だ。 射だけあれば良い。 射と射が結合して射になる所が本質。 「対象」は単位射と同じ。 このくらい単純化すれば小学生にも説明できる。
  • 圏論ってざっくり言うと例え話の理論じゃねーの。話が圏,話の登場人物が対象,登場人物間のやりとりが射
  • 「ある話を別の話に例える」という操作、すなわち例え話が関手
  • 2通りの例え話ができるけど実質同じだよねーってのが自然変換


はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
http://d.hatena.ne.jp/m-hiyama/200608...

  • 「"あ";"あか" = "あか"」の例から分かるように、1文字だけからなる文字列(長さ1の列)は単位のような働きを持ちます。


Modegramming Style: 圏論デザインパターン
http://modegramming.blogspot.jp/2012/...

  • 関手(functor):2つの圏間の構造保持するマッピング

関数プログラミングと関連が深い

圏論とHaskellのかかわりについて:

Haskellと圏論入門 - いじわるだねっ
http://d.hatena.ne.jp/Lost_dog/201112...


Haskell/圏論 - Wikibooks
http://ja.wikibooks.org/wiki/Haskell/...

  • モナドは言うまでもなく Haskell の極めて重要な概念であるが、実はこれらは本来,圏論に由来するものである。
  • モナドは圏から同じ圏への関手であり、さらにいくつかの追加の構造を提供する。


Functorを例として、圏論とHaskellの関係を分かりやすく説明してみるテスト - めもめも
http://d.hatena.ne.jp/enakai00/201309...


計算機科学のための圏論
http://pantodon.shinshu-u.ac.jp/topol...

  • Kleisli category というのはいつ誰が考えた概念かわからないが, Haskell の実装の中で重要な位置を占めている

とくに,モナドを考えるために圏論が必須!

モナドと圏論の関連性について:

圏論のモナドとHaskellのモナド
http://www.slideshare.net/yoshihiromi...


モナド (圏論) - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%A...

  • モナドという名前は、「対応する圏を一般化する」というモナドの動作に注目して、ソーンダース・マックレーンが哲学用語である「モナド」を借用した


モナド - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%A...

  • モナド(Monad)は、ライプニッツ が案出した空間を説明するための概念


Scalaで関数型プログラミングをする#3 圏論を学ぶ(前) | Developers.IO
http://dev.classmethod.jp/etc/func-pr...

  • scalazに関する記事を見ると、「モナド」とか「関手」とかのキーワードが多く使用されています。
  • そのキーワード自体がよくわからないので、それを調べていくと「圏論」にいきつくわけです。
  • そのため、圏論の初歩的なものは学ぶ必要がある


圏論やモナドが、どうして文書処理やXMLと関係するのですか? - 檜山正幸のキマイラ飼育記
http://d.hatena.ne.jp/m-hiyama/200701...

  • テンプレート処理が、もろにモナドになっている、ってハナシ

本格的に学ぶには?

圏論の有名な教科書:

圏論による論理学―高階論理とトポス 感想 清水 義夫 - 読書メーター
http://book.akahoshitakuya.com/b/4130...


株式会社サイエンス社 株式会社新世社 株式会社数理工学社
http://www.saiensu.co.jp/?page=book_d...

数学の解説コラムの目次へ