林子豪的 PKM

范畴论

从函数式编程进入范畴论,沿着组合、结构保持和抽象之间的联系继续探索。

这里收集我学习范畴论的路线、Bartosz Milewski 的视频课程进度、读书记录,以及 Functor、Monad、Lens、Profunctor 等相关笔记。它不是一份完整教程,而是我的学习轨迹和知识地图;笔记可以短、旧、混乱,也可以在以后继续生长。

推荐视频

Bartosz Milewski 的三个系列,也是这份 roadmap 的主线。

c

已看完 · 20 集

Category Theory I

Bartosz Milewski

从 category、函数与代数数据类型进入 functor、natural transformation 和 monad。

c

已看完 · 18 集

Category Theory II

Bartosz Milewski

继续学习 limits、Yoneda、adjunction、comonad、F-algebra 和 lens。

c

待继续看 · 14 集

Category Theory III

Bartosz Milewski

从 string diagram 和 monad algebra 继续到 Lawvere theory、profunctor、end 与 coend。

c

有书籍记录

Category Theory for Programmers

Bartosz Milewski

与视频系列相互参照的主要阅读材料。

关联笔记与文章

不强求完整或整齐,保留笔记原来的形态。

范畴论

专题入口和已有概念地图。

Bartosz Milewski Category Theory 视频笔记

I、II、III 共 52 集的逐集笔记入口。

Category

object、morphism、identity 和 composition。

Functor

保持 identity 与 composition 的 category mapping。

Functor category

以 functor 为 object、natural transformation 为 morphism。

Cartesian closed category

terminal object、product 与 exponential object。

F-algebra

由 functor 描述 operation 输入形状。

Free Monad

构建程序结构,把 interpretation 留给另一个边界。

Contravariant Functor Intuition

用问题归约理解 contramap。

Applicative Functor

独立 effect 的组合。

Kleisli

组合返回 monadic value 的函数。

Free functor / monad

Natural transformation 与 FunctionK。

Lens,函数式的 getter 和 setter

从 modifyF 推导 Lens 的操作。

Lens part1 - Iso

类型之间的 isomorphism。

Profunctor

第一个参数 contravariant、第二个参数 covariant。

视频 Roadmap

逐集连接原视频和独立笔记;I、II 已看完,III 待继续。

73%38 / 52 集已看 · 14 集未看

Category Theory I · 已看完

  1. I 1.1 · Motivation and Philosophy

    已看
  2. I 1.2 · What is a category?

    已看
  3. I 2.1 · Functions, epimorphisms

    已看
  4. I 2.2 · Monomorphisms, simple types

    已看
  5. I 3.1 · Examples of categories, orders, monoids

    已看
  6. I 3.2 · Kleisli category

    已看
  7. I 4.1 · Terminal and initial objects

    已看
  8. I 4.2 · Products

    已看
  9. I 5.1 · Coproducts, sum types

    已看
  10. I 5.2 · Algebraic data types

    已看
  11. I 6.1 · Functors

    已看
  12. I 6.2 · Functors in programming

    已看
  13. I 7.1 · Functoriality, bifunctors

    已看
  14. I 7.2 · Monoidal Categories, Functoriality of ADTs, Profunctors

    已看
  15. I 8.1 · Function objects, exponentials

    已看
  16. I 8.2 · Type algebra, Curry-Howard-Lambek isomorphism

    已看
  17. I 9.1 · Natural transformations

    已看
  18. I 9.2 · Bicategories

    已看
  19. I 10.1 · Monads

    已看
  20. I 10.2 · Monoid in the category of endofunctors

    已看

Category Theory II · 已看完

  1. II 1.1 · Declarative vs Imperative Approach

    已看
  2. II 1.2 · Limits

    已看
  3. II 2.1 · Limits, Higher order functors

    已看
  4. II 2.2 · Limits, Naturality

    已看
  5. II 3.1 · Examples of Limits and Colimits

    已看
  6. II 3.2 · Free Monoids

    已看
  7. II 4.1 · Representable Functors

    已看
  8. II 4.2 · The Yoneda Lemma

    已看
  9. II 5.1 · Yoneda Embedding

    已看
  10. II 5.2 · Adjunctions

    已看
  11. II 6.1 · Examples of Adjunctions

    已看
  12. II 6.2 · Free-Forgetful Adjunction, Monads from Adjunctions

    已看
  13. II 7.1 · Comonads

    已看
  14. II 7.2 · Comonads Categorically and Examples

    已看
  15. II 8.1 · F-Algebras, Lambek's lemma

    已看
  16. II 8.2 · Catamorphisms and Anamorphisms

    已看
  17. II 9.1 · Lenses

    已看
  18. II 9.2 · Lenses categorically

    已看

Category Theory III · 待继续看

  1. III 1.1 · Overview part 1

    未看
  2. III 1.2 · Overview part 2

    未看
  3. III 2.1 · String Diagrams part 1

    未看
  4. III 2.2 · String Diagrams part 2

    未看
  5. III 3.1 · Adjunctions and monads

    未看
  6. III 3.2 · Monad Algebras

    未看
  7. III 4.1 · Monad algebras part 2

    未看
  8. III 4.2 · Monad algebras part 3

    未看
  9. III 5.1 · Eilenberg Moore and Lawvere

    未看
  10. III 5.2 · Lawvere Theories

    未看
  11. III 6.1 · Profunctors

    未看
  12. III 6.2 · Ends

    未看
  13. III 7.1 · Natural transformations as ends

    未看
  14. III 7.2 · Coends

    未看