試験公開中

このエントリーをはてなブックマークに追加

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

オーム社

4,400円 (4,000円+税)

コードで学ぶ、プログラマーのための圏論入門

関連サイト

本書の関連ページが用意されています。

内容紹介

〈本書のポイント〉

・C++とHaskellのコードを使って、圏論の概念を解説した
・数学書のような定理⇒証明の繰り返しではなく、プログラマーの慣れている技術書な解説とした

近年の並列・並行プログラミングにおける安全性確保では、共有可変状態に依存する設計の難しさが指摘されています。こうした課題への有力なアプローチの一つが関数型プログラミングであり、その背景として圏論(けんろん)が重要な役割を果たします。圏論は型理論やラムダ計算と並ぶ理論的基盤の一つです。

関心の高いプログラマーは、命令型言語に導入されたラムダ式などの関数型プログラミングのアプローチから関数型言語に興味をもったり、命令型と異なる関数型というパラダイムに対する関心をもったりするなかから関数型言語を学びます。そのなかの一部は、理論的背景となる圏論にも興味を持ちます。

しかし『ベーシック圏論』や『圏論の基礎』を前にして、数学的素養というハードルの高さを感じる読者も少なくありません。圏論は大学で学ぶような数学の一分野なのです。

本書は、数学書のような定理と証明の反復ではなく、プログラマーが親しみやすい技術書スタイルで圏論の核心を解説します。主要概念をC++とHaskellのコードで具体化し、Haskellについては未経験者にも配慮して段階的に説明します(ただし、C++の基礎文法の理解は前提とします)。

一般的な入門から、モナド/コモナド、カン拡張、豊穣圏、トポス、ローヴェア理論といった発展的話題まで、段階的に橋渡しします。これにより、関数型プログラミングの理解を深め、日々の設計・実装に新たな視点をもたらすことを目指します。

圏論に関心はあるものの数学的背景に不安がある方、関数型の理解を理論面から補強したいプログラマーに適した一冊です。

書誌情報

  • 著者: Bartosz Milewski (著), 北川雅裕(訳), 松田一孝(監訳)
  • 発行日: (紙書籍版発行日: 2026-05-26)
  • 最終更新日: 2026-05-26
  • バージョン: 1.0.0
  • ページ数: 380ページ(PDF版換算)
  • 対応フォーマット: PDF
  • 出版社: オーム社

対象読者

関数型プログラミングから圏論に興味をもったものの、数学に強いわけではないプログラマー/関数型プログラミングの基礎となる圏論を学び、スキルアップを目指すプログラマー

著者について

Bartosz Milewski

ポーランドで教育を受け、理論物理学の地士号を取得。ヨーロッパやアメリカでいくつかのポスドク職を経験したあと、なぜかMicrosoftで検索エンジンの設計・実装をすることになった。しかし当時のMicrosoftはインターネットを本気で受け止めておらず、あまりうまくいかなかった。退職して自分の小さな会社Reliable Softwareを立ち上げ、世界初の分散バージョン管理システム〔CodeCo-op〕を作った(現在はパプリックドメインになっている)。『C++in Action, Industrial-Strength Programming Techniques』(Addison-Wesley)という本も書いた。コンピュータサイエンスをちゃんと学びたくなり、ワシントン大学の大学院課程を受講するようになった。マルチスレッドにすっかり魅了され、WalterBrightやAndreiAlexandrescuとともにプログラミング言語Dの設計・実装に加わった。C++テンプレートメタプログラミングや並行性への興味から、自然とHaskellへ、そして圏論へとたどり沿いた。驚いたことに、ブログの連載記事をまとめた『Category Theory for Programmers』は、プログラマーのあいだでかなりの人気を集めることになった。

北川雅裕

2007年に名古屋大学大学院理学研究科素粒子宇宙物理学専攻博士前期課程を修了(理学修士)。その後は医根機器メーカーで光学設計とソフトウェア開発に従事。また、2010年頃からオープンソースソフトウェアの日本語化や写真編集アプリLightZoneの開発にも携っている。関数プログラミングはJava8に取り入れられたのを機に触れ、そこから他の言語や圏論にも興味を持ち始めた。徳島県生まれ香川県育ち。現在は愛知県在住。趣味はフラメンコギター。

松田一孝

東北大学大学院情報学研究科准教授。2009年に東京大学より博士(情報理工学)を取得。プログラミング言語理論、特に関数プログラミングおよび領域特化言語を専門とする。現在の主要研究キーワードは、双方向変換(本野でも触れられているレンズなど)や可逆計箕など。理論に基づくプログラム・ソフトウェアの構成法や、その理論自身に興味を持つ。圏論に興味を持ったのはHaskellのモナドが切っ掛け。自身の研究に活用したのは、ICFP2015で発表した論文"ApplicativeBidirectional Progra1mning with Lenses"から。愛媛県出身。好きな郷土料理はじゃこ天。

目次

日本語版に寄せて

序文

第1部

1 圏:合成の本質

2 型と関数

3 圏のさまざま

4 クライスリ圏

5 積と余積

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

7 関手

8 関手性

9 関数型

10 自然変換

第2部

11 宣言的プログラミング

12 極限と余極限

13 自由モノイド

14 表現可能関手

15 米田の補題

16 米田埋め込み

第3部

17 射こそすべて

18 随伴

19 自由/忘却随伴

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

21 モナドと計算効果

22 圏論から見たモナド

23 コモナド

24 F-代数

25 モナドの代数

26 エンドとコエンド

27 カン拡張

28 豊穣圏

29 トポス

30 ローヴェア理論

31 モナド・モノイド・圏

付録・索引

謝辞

索引

Home 書籍一覧 プログラマーのための圏論 ▲ ページトップへ戻る