コードで学ぶ、プログラマーのための圏論入門
〈本書のポイント〉
・C++とHaskellのコードを使って、圏論の概念を解説した
・数学書のような定理⇒証明の繰り返しではなく、プログラマーの慣れている技術書な解説とした
近年のプログラミング環境において、並列性に潜むコードの安全性確保のためには従来のオブジェクト指向プログラミングは非効率であり、また、命令型プログラミングの拡張性には限界が見え始めています。
この非効率や限界に対するひとつの解答が関数型プログラミングというパラダイムであり、その理論的な基礎となるのが本書で解説する「圏論」(けんろん)です。
関心の高いプログラマーは、命令型言語に導入されたラムダ式などの関数型プログラミングのアプローチから関数型言語に興味をもったり、命令型と異なる関数型というパラダイムに対する関心をもったりするなかから関数型言語を学びます。そのなかの一部は、理論的背景となる圏論にも興味を持ちます。
そして『ベーシック圏論』や『圏論の基礎』を手に取ったプログラマーの多くは、数学的素養という壁の前に撤退を余儀なくされます。圏論は大学で学ぶような数学の一分野なのです。
本書は、一般的なプログラマーが『圏論の基礎』に立ち向かうための最初の第一歩です。ほとんどの主要の概念にコードを使い、C++とHaskellの例をたくさん載せています。読者はHaskellを知らないかもしれません。そこでHaskellについてはゆっくりと解説を進めます。C++の文法の知識は必要です。
本書により、プログラマーは関数型プログラミングの基礎となる圏論の知識を深めることができるでしょう。それにより、日々のコーディングをより洗練させ、困難な課題に対する新たなアプローチを得られるでしょう。本書は、圏論を学びたいけれども数学の基礎が欠けているプログラマーだったり、圏論を学ぶことでスキルアップを目指したいプログラマーに最適な1冊です。