Category Theory for Programmers (Scala Edition)
by Bartosz Milewski

https://www.blurb.com/b/9603882-category-theory-for-programmers-scala-edition-pape

Code snippets are both in Scala 2 and Haskell
https://github.com/hmemcpy/milewski-ctfp-pdf

Bartosz Milewski’s video lectures

Let’s add Scala 3 snippets!

Discord channel: #category-theory
Discord server:


Meetup: https://www.meetup.com/the-south-padre-island-reading-group/events/292969118/
Zoom:


Chapter 16
Yoneda Embedding

April 24, 2023
May 22, 2023

Presenter

Yoneda Embedding

Jens - May 22

The Embedding

Jens - May 22

Application to Haskell

Casey - May 22

Preorder Example

Casey - May 22

Naturality

Casey


Chapter 15
The Yoneda Lemma

February 27, 2023
March 13, 2023
April 10, 2023

Presenter

Introduction (pp 231-234)

Casey - Feb 27

Introduction (pp 235-240)

Casey - Mar 13

Introduction (p 240)

Casey - April 10

Yoneda in Haskell

Jens - April 10

Example from Emily Riehl’s book - 2.21

Weining

Co-Yoneda

Casey - April 10


Chapter 14
Representable Functors

February 13, 2023

Presenter

The Hom Functor

Casey

Representable Functors

Weining


Chapter 13
Free Monoids

January 30, 2023

Presenter

Free Monoids in Haskell

Casey

Free Monoids Universal Construction

Jens


Chapter 12
Limits and Colimits

December 5, 2022
January 2, 2023
January 16, 2023

Presenter

12 Limits and Colimits

Casey - December 5

12.1 Limits as a Natural Isomorphism

Jens - January 2

12.2 Examples of Limits

Weining - January 16

12.3 Colimits

Jens - January 30

12.4 Continuity

Casey - January 30


Chapter 11
Declarative Programming

November 21, 2022

Presenter

11. Declarative Programming

all


Chapter 10
Natural Transformations

November 7, 2022

Presenter

10. Natural Transformations
10.1 Polymorphic Functions

Jens

10.2 Beyond Naturality

Casey

10.3 Functor Category

Casey

10.4 2-Categories

Casey


Chapter 9
Function Types

October 24, 2022

Presenter

9 Function Types
9.1 Universal Construction

Jens

9.2 Currying

Jens

9.3 Exponentials
9.4 Cartesian Closed Categories

Jens

9.5 Exponentials and Algebraic Data Types

Casey

9.6 Curry-Howard Isomorphism

Casey


Chapter 8
Functoriality

September 12, 2022
September 26, 2022

Presenters

8 Functoriality
8.1 Bifunctors

Patrick - Sep 12

8.2 Product and Coproduct Bifunctors

Patrick - Sep 12

8.3 Functorial Algebraic Data Types

Casey - Sep 12

8.4 Functors in C++

-

8.5 The Writer Functor

Casey - Sep 26

8.6 Covariant and Contravariant Functors

Jens - Sep 26

8.7 Profunctors

Jens - Sep 26

8.8 The Hom-Functor

Jens - Sep 26


Chapter 7

August 15, 2022

August 29, 2022

Presenter

7 Functors
7.1 Functors in Programming
7.1.1 The Maybe Functor

Jens

7.1.2 Equational Reasoning

Casey

7.1.3 Optional (C++)

Weining

7.1.4 Typeclasses

Patrick - August 29

7.1.5 Functor in C++

Weining - August 29

7.1.6 The List Functor

Jens - August 29

7.1.7 The Reader Functor

Jens - August 29

7.2 Functors as Containers

Patrick - August 29

7.3 Functor Composition

Casey - August 29


Chapters 5 and 6

July 25, 2022
August 1, 2022
August 15, 2022

Presenter

5 Products and Coproducts
5.1 Initial Object

Casey

5.2 Terminal Object
5.3 Duality

Casey

5.4 Isomorphisms

Jens

5.5 Products

Jens

5.6 Coproduct

Patrick - August 1

5.7 Asymmetry

Patrick - August 1

6 Simple Algebraic Data Types
6.1 Product Types

Casey - August 1

6.2 Records

Casey - August 1

6.3 Sum Types

Omar - August 1

6.4 Algebra of Types

Weining - August 15


Chapters 3 and 4

July 18, 2022
July 25, 2022

Presenter

3 Categories Great and Small
3.1 No Objects
3.2 Simple Graphs

Jens

3.3 Orders

Jens

3.4 Monoid as Set

Casey

3.5 Monoid as Category

Casey

4 Kleisli Categories

Patrick

4.1 The Writer Category

Patrick

4.2 Writer in Haskell

Omar - July 25

4.3 Kleisli Categories

Antonio - July 25

Chapters 1 and 2

July 11, 2022

Presenter

1 Category: Composition

Casey

2 Types & Functions

Antonio Jesús García Palomo