Category Theory for Programmers | Functional Programming | Haskell

Bartosz Milewski

Explore the connections between category theory and functional programming with this comprehensive course by Bartosz Milewski. Dive into concepts like monads, comonads, and enriched categories.

University CoursesCompilerFunctional ProgrammingHaskell

Introduction

Category Theory for Programmers: The Preface is a blog post by Bartosz Milewski that introduces his series on category theory for programmers. The series aims to make category theory accessible and applicable for software developers.

screenshot

Highlights

  • Covers a wide range of category theory concepts, from the essence of composition to monads, comonads, and enriched categories
  • Presented in a programming-focused way, with examples and applications in programming languages like Haskell
  • Includes a free PDF version with nicer typesetting, as well as a video series teaching the material

Recommendation

This course is highly recommended for programmers interested in exploring the connections between category theory and functional programming. The content is well-structured and the author's explanations make complex topics approachable, making it a valuable resource for both beginners and experienced developers.

How GetVM Works

Learn by Doing from Your Browser Sidebar

Access from Browser Sidebar

Access from Browser Sidebar

Simply install the browser extension and click to launch GetVM directly from your sidebar.

Select Your Playground

Select Your Playground

Choose your OS, IDE, or app from our playground library and launch it instantly.

Learn and Practice Side-by-Side

Learn and Practice Side-by-Side

Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.

Explore Similar Hands-on Tutorials

Purely Functional Data Structures (1996)

2
Technical TutorialsAlgorithmData StructuresFunctional Programming
Explore the design and implementation of efficient data structures using purely functional techniques. Gain insights into the trade-offs and performance characteristics of different data structures.

Compiler Design in C (1990)

1
Technical TutorialsCCompiler
Comprehensive guide to understanding and implementing compilers using the C programming language. Covers fundamental concepts, syntax analysis, code generation, and optimization.

Compiler Design: Theory, Tools, and Examples, C/C++ Edition

2
Technical TutorialsCC++Compiler
Comprehensive course on compiler design, covering theory, tools, and practical C/C++ examples. Explore lexical analysis, syntax analysis, and code generation.

Compiler Design: Theory, Tools, and Examples, Java Edition

11
Technical TutorialsCompilerJava
Comprehensive guide to compiler design theory and tools, with practical Java examples. Covers lexical analysis, parsing, code generation, and optimization.

Crafting Interpreters | Programming Language Design & Implementation

10
Technical TutorialsCompiler
Comprehensive guide to designing and implementing programming language interpreters, covering scanning, parsing, evaluating expressions, and more.

EXPL NITC: Build your own Compiler

6
Technical TutorialsCompiler
Dive into the practical development of a compiler with the EXPL NITC: Build Your Own Compiler book. Gain hands-on experience in programming languages and compiler construction.

Introduction to Compilers and Language Design

5
Technical TutorialsCompiler
Comprehensive course on compiler design principles and techniques, including scanning, parsing, semantic analysis, code generation, and optimization. Hands-on experience in building a complete compiler.

Let's Build a Compiler | Compiler Design | Programming Language Implementation

22
Technical TutorialsCompiler
Comprehensive guide to understanding and building compilers, covering parsing, code generation, and language implementation. Practical insights for beginners and experienced programmers.

Basic Computer Architecture

5
Technical TutorialsCompilerComputer EngineeringComputer Science
Explore the fundamental concepts of computer architecture with this comprehensive book, now available under a Creative Commons license.