浜村拓夫(・∀・)作品集

頭の中にあるイメージを表現できるデザイン力が欲しいです(><)

プログラマーのための圏論

圏論の新刊が出ていたので買ってみました。

本文中のイラスト(豚の絵)に既視感がありました。

以前話題になった圏論の講座を書籍化した本であることが分かりました。

 

 

  • プログラマーのための圏論
  • 著者:Bartosz Milewski (著)、北川 雅裕 (翻訳)、松田 一孝 (監修)
  • 出版社:オーム社
  • 発売日:2026/5/26
  • ページ:380ページ
  • 重量:680 g
  • 寸法:18.2 x 2.1 x 23.5 cm
  • 価格:4400円 (税込)

 

(この本の内容はオンラインでも読めます。)

 

ktgw0316.github.io

 

 

目次

日本語版に寄せて

序文


第1部

 1 圏:合成の本質

  1.1 関数としての射
  1.2 合成の性質
  1.3 合成はプログラミングの本質
  1.4 課題

 2 型と関数

  2.1 型を必要とするのは誰か?
  2.2 型は合成に関する
  2.3 型とは何か?
  2.4 なぜ数学モデルが必要なのか?
  2.5 純粋関数と非純粋関数
  2.6 型の例
  2.7 課題

 3 圏のさまざま

  3.1 対象がない場合
  3.2 有向グラフ
  3.3 順序
  3.4 集合としてのモノイド
  3.5 圏としてのモノイド
  3.6 課題

 4 クライスリ圏

  4.1 Writer圏
  4.2 HaskellにおけるWriter
  4.3 クライスリ圏
  4.4 課題

 5 積と余積

  5.1 始対象
  5.2 終対象
  5.3 双対性
  5.4 同型
  5.5 積
  5.6 余積
  5.7 非対称性
  5.8 課題
  5.9 参考文献

 6 シンプルな代数的データ型

  6.1 直積型
  6.2 レコード
  6.3 直和型
  6.4 型の代数
  6.5 課題

 7 関手

  7.1 プログラミングにおける関手
  7.1.1 Maybe関手
  7.1.2 等式による推論
  7.1.3 Optional
  7.1.4 型クラス
  7.1.5 C++における関手
  7.1.6 リスト関手
  7.1.7 Reader関手
  7.2 コンテナーとしての関手
  7.3 関手の合成
  7.4 課題

 8 関手性

  8.1 双関手
  8.2 積と余積の双関手
  8.3 関手的代数的データ型
  8.4 C++における関手
  8.5 Writer関手
  8.6 共変関手と反変関手
  8.7 プロ関手
  8.8 Hom関手
  8.9 課題

 9 関数型

  9.1 普遍的構成
  9.2 カリー化
  9.3 冪
  9.4 デカルト閉圏
  9.5 冪と代数的データ型
  9.5.1 0乗
  9.5.2 1の冪乗
  9.5.3 1乗
  9.5.4 和による冪
  9.5.5 冪の冪
  9.5.6 積の冪
  9.6 カリー・ハワード同型
  9.7 参考文献

 10 自然変換

  10.1 多相関数
  10.2 自然性を越えて
  10.3 関手圏
  10.4 2-圏
  10.5 おわりに
  10.6 課題


第2部

 11 宣言的プログラミング

 12 極限と余極限

  12.1 自然同型としての極限
  12.2 極限の例
  12.3 余極限
  12.4 連続性
  12.5 課題

 13 自由モノイド

  13.1 Haskellにおける自由モノイド
  13.2 自由モノイドの普遍的構成
  13.3 課題

 14 表現可能関手

  14.1 Hom関手
  14.2 表現可能関手
  14.3 課題
  14.4 参考文献

 15 米田の補題

  15.1 Haskellにおける米田の補題
  15.2 余米田の補題
  15.3 課題
  15.4 参考文献

 16 米田埋め込み

  16.1 埋め込み
  16.2 Haskellへの応用
  16.3 前順序での例
  16.4 自然性
  16.5 課題


第3部

 17 射こそすべて

  17.1 関手
  17.2 可換図式
  17.3 自然変換
  17.4 自然同型
  17.5 Hom集合
  17.6 Hom集合同型
  17.7 Hom集合の非対称性
  17.8 課題

 18 随伴

  18.1 随伴と単位/余単位ペア
  18.2 随伴とhom集合
  18.3 随伴に基づく積
  18.4 随伴に基づく冪
  18.5 課題

 19 自由/忘却随伴

  19.1 いくつかの直観
  19.2 課題

 20 モナド:プログラマーの定義

  20.1 クライスリ圏
  20.2 Fishの解剖
  20.3 do記法

 21 モナドと計算効果

  21.1 問題
  21.2 解決策
  21.2.1 部分性
  21.2.2 非決定性
  21.2.3 読み取り専用の状態
  21.2.4 書き込み専用の状態
  21.2.5 状態
  21.2.6 例外
  21.2.7 継続
  21.2.8 インタラクティブな入力
  21.2.9 インタラクティブな出力
  21.3 結論

 22 圏論から見たモナド

  22.1 モノイダル圏
  22.2 モノイダル圏におけるモノイド
  22.3 モノイドとしてのモナド
  22.4 随伴に基づくモナド

 23 コモナド

  23.1 コモナドによるプログラミング
  23.2 積コモナド
  23.3 合成の分析
  23.4 Streamコモナド
  23.5 圏論から見たコモナド
  23.6 Storeコモナド
  23.7 課題

 24 F-代数

  24.1 再帰
  24.2 F-代数の圏
  24.3 自然数
  24.4 Catamorphism
  24.5 fold
  24.6 余代数
  24.7 課題

 25 モナドの代数

  25.1 T-代数
  25.2 クライスリ圏
  25.3 コモナドの余代数
  25.4 レンズ
  25.5 課題

 26 エンドとコエンド

  26.1 対角自然変換
  26.2 エンド
  26.3 等化子としてのエンド
  26.4 エンドとしての自然変換
  26.5 コエンド
  26.6 忍者米田の補題
  26.7 プロ関手の合成

 27 カン拡張

  27.1 右カン拡張
  27.2 随伴としてのカン拡張
  27.3 左カン拡張
  27.4 エンドとしてのカン拡張
  27.5 Haskellにおけるカン拡張
  27.6 自由関手

 28 豊穣圏

  28.1 なぜモノイダル圏か?
  28.2 モノイダル圏
  28.3 豊穣圏
  28.4 前順序
  28.5 距離空間
  28.6 豊穣関手
  28.7 自己豊穣化
  28.8 2-圏との関係

 29 トポス

  29.1 部分対象分類子
  29.2 トポス
  29.3 トポスと論理
  29.4 課題

 30 ローヴェア理論

  30.1 普遍代数
  30.2 ローヴェア理論
  30.3 ローヴェア理論のモデル
  30.4 モノイドの理論
  30.5 ローヴェア理論とモナド
  30.6 コエンドとしてのモナド
  30.7 副作用のローヴェア理論
  30.8 課題
  30.9 参考文献

 31 モナド・モノイド・圏

  31.1 双圏
  31.2 モナド
  31.3 課題
  31.4 参考文献

 

付録・索引

謝辞

索引

 

出版社

www.ohmsha.co.jp

 

参考情報

 

GitHub

github.com

 

日本語訳のHTML版

ktgw0316.github.io

 

原著のPDF

https://s3.amazonaws.com/milewski-ctfp-pdf/category-theory-for-programmers.pdf

 

YouTubeの圏論講座

www.youtube.com

 

Category Theory - YouTube

 

Category Theory II - YouTube

 

Category Theory III - YouTube

 

著者

Bartosz Milewski バルトシュ・ミレフスキー 氏

 

bartoszmilewski.com

 

github.com

 

https://x.com/BartoszMilewski

 

書評

オンラインで日本語訳を読めるので、紙の本を買うか迷いました。

AIに相談したら、1章~3章程度を読んで内容が理解できそうなら、紙の本を買ってじっくり読むのもお勧めとのこと。

積読になるなら買う必要もないと思ったけど、数章読んでみて内容が理解できたので買ってみました。

本書で圏論の理解を深めてみたいです。

 

圏論の参考書

圏論の参考書はいろいろありますね。

自分にとって分かりやすい説明の本を探してみることをお勧めします。

 

 

 

 

 

 

 

 

 

 

 

圏論の地平線