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: 65
Created: 2022-02-01
License: CC BY-SA
Author(s): by Bartosz Milewski
Category Theory for Programmers

Others Programmers Tutorials

Think Stats: Probability and Statistics for Programmers

Category Theory for Programmers

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

Others related eBooks about Category Theory for Programmers

Android video game tutorial

With this tutorial you will learn how to create an android video game and the basics of android applications development, free training document on 34 pages by Nikhil Yadav....

Download Struts Tutorial

This is a tutorial for the Struts framework. It consists of a small application which is developed step by step.A free pdf training material course on 67 pages by Stephan Wiesner....

Essential Go

This book written to provide clear and concise explanation of topics for programmers both starting to learn the Go programming language as well as those diving in more complex topics. Most examples are linked to online playground that allows you to change the code and re-run it....

Programming Language C++

Download free C++ tutorial , course training on pdf under 1368 pages by Richard Smith....

Python re(gex)?

Scripting and automation tasks often need to extract particular portions of text from inpu..., download free Python tutorial in PDF (71 pages) created by ....

Hibernate Annotations

This pdf tutorial present a reference guide for Hibernate , a training document course on 49 pages for beginners....

Download Tutorial Laravel 5

Easy Laravel 5 is an overview of the new PHP plateform, free training document material under 44 pages intended to beginners by W.Jason Gilmore....

Making Games with Python & Pygame

This book will teach you how to make graphical computer games in the Python programming language using the Pygame library....

Kotlin tutorial for professionals

Download free Kotlin tutorial course in PDF, training file in 38 chapters and 94 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

R Language tutorial, The Basic Maniuplation

The purpose of this course is to provide a starting point for Interested in R language. It is useful For the beginner to assimilate certain notions and concepts in order to improve their knowledge....