Category Theory for Programmers

Category Theory is one of the most abstract branches of mathematics. It is usually taught to graduate students after they have mastered several other branches of mathematics, like algebra, topology, and group theory. It might, therefore, come as a shock that the basic concepts of category theory can be explained in relatively simple terms to anybody with some experience in programming.

That's because, just like programming, category theory is about structure. Mathematicians discover structure in mathematical theories, programmers discover structure in computer programs. Well-structured programs are easier to understand and maintain and are less likely to contain bugs. Category theory provides the language to talk about structure and learning it will make you a better programmer.


Table of contents

  • Category: The Essence of Composition
  • Types and Functions
  • Categories Great and Small
  • Kleisli Categories
  • Products and Coproducts
  • Simple Algebraic Data Types
  • Functors
  • Functoriality
  • Function Types
  • Natural Transformations
  • Declarative Programming
  • Limits and Colimits
  • Free Monoids
  • Representable Functors
  • The Yoneda Lemma
  • Yoneda Embedding
  • It's All About Morphisms
  • Adjunctions
  • Free/Forgetful Adjunctions
  • Monads: Programmer's Definition
  • Monads and Effects
  • Monads Categorically
  • Comonads
  • F-Algebras
  • Algebras for Monads
  • Ends and Coends
  • Kan Extensions
  • Enriched Categories
  • Topoi
  • Lawvere Theories
  • Monads, Monoids, and Categories
Pages : 498
Size : 16.3 MB
File type : PDF
Downloads: 70
Created: 2022-02-01
License: CC BY-SA
Author(s): by Bartosz Milewski
Category Theory for Programmers

Others Programmers Tutorials

Category Theory for Programmers

Think Stats: Probability and Statistics for Programmers

97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Others related eBooks about Category Theory for Programmers

Think Java: How to Think Like a Computer Scientist

If you want to understand computer science, but have no programming experience, this book is for you. Think Java starts with the most basic programming concepts and carefully defines every term when it's first used. The authors then develop each new concept in a logical progression. Larger pieces ...

Fortran 90/95 Programming Manual

Download Fortran 90/95 Programming Manual, free training course under 67 pages by Tanja van Mourik....

Non-Programmer's Tutorial for Python 3

This book is a tutorial for the Python 3 programming language designed for someone with no programming experience. Starting from no programming knowledge, the book teaches how to create programs with examples, explanations and exercises....

Neural Networks with JavaScript Succinctly

Download free course Neural Networks with JavaScript Succinctly, pdf file on 163 pages by James McCaffrey....

Think DSP: Digital Signal Processing in Python

This book is an introduction to signal processing and system analysis using a computational approach, using Python as the programming language. The premise of this book (like the others in the Think X series) is that if you know how to program, you can use that skill to learn other things. By the ...

Android Application Development for the Intel Platform

Download free course Android Application Development for the Intel Platform, pdf file on 508 pages by by Ryan Cohen, Tao Wang....

Introduction to Microsoft SharePoint 2016

Download a free document of SharePoint 2016, a course in pdf on 64 pages for beginners....

Think C++

Download free course Think C++, pdf file on 191 pages by Allen Downey....

Getting started with React Native tutorial

Download free React Native tutorial course in PDF, training file in 32 chapters and 91 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

XcalableMP PGAS Programming Language

XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Ad.....