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

Warning: Trying to access array offset on false in /home/tutovnfz/public_html/article.php on line 233

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

Fast Lane to Python

This book aims to enable the reader to quickly acquire a Python foundation. The material particularly feel quite comfortable to anyone with background in an object-oriented programming (OOP) language such as C++ or Java....

Biopython: Tutorial and Cookbook

Download free course Biopython: Tutorial and Cookbook, pdf file on 360 pages by by Jeff Chang, Brad Chapman, Iddo Friedberg, Thomas Hamelryck, Michiel de Hoon, Peter Cock, Tiago Antao, Eric Talevich, Bartek Wilczy?ski....

Python for Everybody

Download free course Python for Everybody, pdf file on 247 pages by Dr. Charles Severance....

Arduino Development Cookbook

The single-chip computer board Arduino is small in size but vast in scope, capable of bein..., download free Arduino tutorial in PDF (246 pages) created by Cornel Amariei ....

IPython Interactive Computing and Visualization Cookbook

This book contains many ready-to-use, focused recipes for high-performance scientific computing and data analysis, from the latest IPython/Jupyter features to the most advanced tricks, to help you write better and faster code. You will apply these state-of-the-art methods to various real-world examp...

Think Python, 2nd Edition

If you want to learn how to program, working with Python is an excellent way to start. Thi..., download free Python tutorial in PDF (292 pages) created by ....

Classical Object-Oriented Programming with ECMAScript

Download free course Classical Object-Oriented Programming with ECMAScript, pdf file on 23 pages by Mike Gerwitz....

Python Data Science Handbook: Essential Tools for Working with Data

For many researchers, Python is a first-class tool mainly because of its libraries for storing, manipulating, and gaining insight from data. Several resources exist for individual pieces of this data science stack, but only with the Python Data Science Handbook do you get them all - IPython, NumPy, ...

The Rook's Guide to C++

This Creative Commons-licensed textbook written by Norwich University students and faculty aims to provide an introduction to the C++ programming language. The PDF and original typesetting materials are available if you are interested in having a free digital copy of your own or if you wish to contr...

Using Perl 6

This book is primarily for people who want to learn Perl 6. It teaches the basics from a Perl 6 perspective, touching on variable interpolation, datastructure use, object construction, threads, closures, symbol tables, and other core features. It then introduces continuations, coroutines, binding (o...