Direct link: category-theory-for-programmers.pdf
(Latest release: v0.6.0, January 2018)
This is an unofficial PDF version of "Category Theory for Programmers" by Bartosz Milewski, converted from his blogpost series.
Conversion is done by scraping the blog with Mercury Web Parser to get a clean HTML content, modifying and tweaking with Beautiful Soup, finally, converting to LaTeX with Pandoc. See scraper.py for additional information.
Please report any formatting/content issues, or better yet, send a PR!
For macOS Users: The Inconsolata LGC and Linux Libertine fonts are not included in MacTex. You need to install them separately. Download the Inconsolata LGC fonts here and the Linux Libertine fonts here. To install the fonts system-wide, move all the downloaded .otf
files into the /Library/Fonts
folder. After completing these tasks, continue with the instructions below.
The src
directory contains the LaTeX sources. To recompile the book, go there and enter:
$ make
The file preamble.tex
contains all the configuration and style declarations.
Chances for successful compilation are increased if you have almost complete installation of recent TeX Live distribution (the PDF here is compiled with 2017 release). The needed OpenType fonts must be installed in the operating system.
To remove all the generated PDFs and auxiliary files in the whole src
tree:
$ make clean-all
Tip: you can use a utility like entr to run a command after any *.tex
file changes, e.g.:
$ ls **/*.tex | entr make
This will monitor all the *.tex
files for changes, and will execute the make
command if any of them changes. This speeds up development significantly, as you can freely modify any of the files, and get almost instant feedback!
PDF LaTeX source and the tools to create it are based on the work by Andres Raba et al., available here: https://github.com/sarabander/sicp-pdf.
The book content is taken, with permission, from Bartosz Milewski's blogpost series, and adapted to the LaTeX format.
Thanks to the following people for contributing corrections/conversions:
- Oleg Rakitskiy
- Jared Weakly
- Paolo G. Giarrusso
- Adi Shavit
- Mico from the TeX.StackExchange community
- Marcello Seri
- ...and many others!
Note from Bartosz: I really appreciate all your contributions. You made this book much better than I could have imagined. Thank you!
The PDF book, .tex
files, and associated images and figures in directories src/fig
and src/content
are licensed under Creative Commons Attribution-ShareAlike 4.0 International License (cc by-sa).
The script files scraper.py
and others are licensed under GNU General Public License version 3 (for details, see LICENSE).