gitmyhub

milewski-ctfp-pdf

TeX ★ 12k updated 2mo ago

Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source

An unofficial PDF and LaTeX source for 'Category Theory for Programmers,' a book that explains advanced math concepts for developers using Haskell, Scala, and OCaml code examples. You can build it yourself or buy a printed copy.

LaTeXNixHaskellScalaOCamlReasonMakesetup: moderatecomplexity 2/5

This repository contains an unofficial PDF and LaTeX source for "Category Theory for Programmers," a book by Bartosz Milewski that grew out of his series of blog posts on the subject. The conversion from blog posts to typeset book was done with Milewski's permission, and the result has been published in both free digital form and as a printed book available for purchase.

Category theory is a branch of mathematics that has become relevant to programmers, particularly those working with functional programming languages like Haskell, Scala, and OCaml. The book explains these mathematical ideas in terms that programmers can relate to, using code examples in those languages. You do not need a mathematics background to start reading it, though it does build up to advanced concepts over time.

The repository provides the full LaTeX source so you can build the PDF yourself. The build process uses a tool called Nix to manage dependencies, which means you do not have to manually install a LaTeX environment. Running a single command produces a PDF file in a format you choose: the standard Haskell edition, a Scala edition, an OCaml edition, or a Reason edition. A Makefile is also available for those who prefer to build without Nix.

If you want a physical copy rather than a PDF, both a full-color hardcover edition and a Scala paperback edition were published in August 2019 and are available through a print-on-demand service called Blurb. The repository also tracks errata for those printed editions.

The book content is licensed under Creative Commons Attribution-ShareAlike 4.0, which means you can share and adapt it as long as you give credit and use the same license. The build scripts are licensed under the GNU General Public License.

Where it fits