• Stars
    star
    10,947
  • Rank 3,094 (Top 0.07 %)
  • Language
    TeX
  • License
    Other
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

GitHub stars GitHub Workflow Status Download License

Category Theory For Programmers

An unofficial PDF version of "Category Theory For Programmers" by Bartosz Milewski, converted from his blogpost series (with permission!).

Category Theory for Programmers

Buy the book

Build the book

The building workflow requires Nix. After installing Nix, you need to enable the upcoming "flake" feature which must be enabled manually the time being. This is needed to expose the new Nix commands and flakes support that are hidden behind feature-flags.

Afterwards, type nix flake show in the root directory of the project to see all the available versions of this book. Then type nix build .#<edition> to build the edition you want (Haskell, Scala, OCaml, Reason and their printed versions). For example, to build the Scala edition you'll have to type nix build .#ctfp-scala.

Upon successful compilation, the PDF file will be placed in the result directory.

The command nix develop will provide a shell containing all the required dependencies to build the book manually using the provided Makefile. To build the ctfp-scala edition, just run make ctfp-scala.

Contribute

Contributors are welcome to contribute to this book by sending pull-requests. Once reviewed, the changes are merged in the main branch and will be incorporated in the next release.

Note from Bartosz: I really appreciate all your contributions. You made this book much better than I could have imagined. Thank you!

Find the list of contributors on Github.

Acknowledgements

PDF LaTeX source and the tools to create it are based on the work by Andres Raba. The book content is taken, with permission, from Bartosz Milewski's blogpost series, and adapted to the LaTeX format.

The original blog post acknowledgments by Bartosz are consolidated in the Acknowledgments page at the end of the book.

License

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.

The script files scraper.py and others are licensed under GNU General Public License version 3.

More Repositories

1

haskell-hie-devcontainer

A DevContainer for VSCode, for installing GHC 8.6.5, HIE (Haskell IDE Engine) and the required plugins
Dockerfile
165
star
2

AgentMulder

** THIS PLUGIN IS NO LONGER MAINTAINED. PLEASE FOLLOW ERNICOMMUNITY FOR UPDATES **
C#
151
star
3

zio-clippy

A Scala compiler plugin for better ZIO type mismatch errors.
Scala
79
star
4

cv

My CV / Resume
TeX
72
star
5

Nancy.ReSharper

Nancy plugin for ReSharper adds navigation and intellisense support for NancyFx in ReSharper, for super-duper-happy-path web development!
C#
53
star
6

SnagitImgur

A plugin ("accessory") for Snagit that allows sending the currently captured image to imgur.com
C#
51
star
7

ChromeRegJump

Chrome extension to open any selected Windows Registry path in Regedit using Sysinternals RegJump
JavaScript
35
star
8

SlimVS

Experiments in putting Visual Studio on a diet!
PowerShell
28
star
9

xkcd-slackbot

An /xkcd command for Slack!
C#
27
star
10

rediz

A toy redis client implementation in Scala
Scala
23
star
11

dotPeek.Deobfuscator

A plugin for JetBrains dotPeek Decompiler to deobfuscate assemblies, using de4dot deobfuscator.
23
star
12

VSIXPowerToys

Windows Shell Extensions (and other utilities) to work with Visual Studio Extensions (vsix) files.
C#
20
star
13

ReSharper.ReMoji

Enables support for EmojiVS extension (https://github.com/jbevain/EmojiVS) in ReSharper
C#
20
star
14

AnyScriptCs

A Visual Studio "15" extension that enables debugging scriptcs (http://scriptcs.net/) files via "Open Folder" (File > Open Folder)
C#
14
star
15

journey-to-fp

Slides and code from the talk "Journey to Functional Programming", given at Wix Engineering Conference
Scala
11
star
16

teamcity-vsix-gallery

A plugin for JetBrains TeamCity that turns it into a Visual Studio Extensions (vsix) Gallery
Kotlin
10
star
17

dnTrace

Trace any method in any assembly in any (live) .NET process!
C#
10
star
18

Gisthub

Makes clicking the top left logo on gist.github.com take to github home, when clicked on the 'Github' part.
JavaScript
10
star
19

Sledgehammer

Enable non-virtual/static methods mocking with your favorite mocking framework!
C#
7
star
20

SDP2016

Slides and demos from SDP2016 (Sela Developer Practice)
C#
6
star
21

kindleanpub

Fixes garbled image rendering on (older) Kindle devices of PDFs purchased on Leanpub.
Shell
6
star
22

intellij-plugin-demo

Source code for my Scala in the City talk on Building IntelliJ plugins with Scala
Scala
5
star
23

Mvid.Fody

An addin for Fody that allows specifying an assembly MVID (Module Version Id)
C#
5
star
24

ReSharper.AnnotationsPack

A collection of External Annotations for ReSharper for popular 3rd party frameworks!
Shell
5
star
25

scala-heapview

An IntelliJ plugin that highlights non-obvious boxing, closure, and function allocations in Scala.
Scala
4
star
26

docker-hie

A docker image that installs GHC 8.6.5 with a matching HIE (haskell-ide-engine) to be used as a base for the HIE-DevContainer
Dockerfile
3
star
27

hmemcpy.com

Source code for my blog (powered by Hexo.io)
Stylus
2
star
28

intellij-metals

Experiments in Metallurgy
Scala
1
star
29

ReSharper.LocateFileInSolutionExplorer

Locate a file or a folder in the Solution Explorer, but without navigating to it.
C#
1
star
30

intellij-flix

The Flix programming language support for IntelliJ IDEA
Kotlin
1
star
31

zftp

A ZIO wrapper for jsch-powered sftp client for Scala
Scala
1
star