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: 83
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

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

Ruby Regexp

Download free course Ruby Regexp, pdf file on 72 pages by Sundeep Agarwal....

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....

Tutorial JSF in PDF

Download free JSF tutorial course in PDF, training file in 6 chapters and 18 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

5 Unsung Tools of DevOps

Download free course 5 Unsung Tools of DevOps, pdf file on 21 pages by O'Reilly Media....

Algorithmic Graph Theory

This is an introductory book on algorithmic graph theory. Theory and algorithms are illustrated using the Sage open source mathematics software. To get an overview of the book, you can view the table of contents as shown below or download the complete book. This book is more commonly known as the ...

How To Code in Go

This book is designed to introduce you to writing programs with the Go programming languag..., download free Go tutorial in PDF (447 pages) created by Cory LaNou ....

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....

Problem Solving with Algorithms and Data Structures

Download free tutorial in Algorithms and data structures created by Brad Miller and David ranum....

Artificial Neural Networks

Artificial Neural Networks (ANN) are state-of-the-art, trainable algorithms that emulate certain major aspects in the functioning of the human brain. This gives them a unique, self-training ability, the ability to formalize unclassified information and, most importantly, the ability to make foreca...

Python Notes for Professionals

This book goes beyond the basics to teach beginner- and intermediate-level Python programmers the little-known tools and constructs that build concise, maintainable code. Design better architecture and write easy-to-understand code using highly adoptable techniques that result in more robust and eff...