理解单子是自函子范畴上的幺半群(五)

💡 原文中文,约600字,阅读约需2分钟。
📝

内容提要

在编程语言中,将所有类型作为对象,它们之间的转换作为态射,形成一个范畴。如果有一组函数可以转换类型并转换类型间的转换,那么这组函数就是函子,是自函子。例如Rust语言中的Option类型就是一个自函子。

🎯

关键要点

  • 在编程语言中,所有类型作为对象,类型间的转换作为态射,形成一个范畴。
  • 一组函数可以转换类型和类型间的转换,这组函数称为函子,自函子是变换后仍为同一范畴的函子。
  • 自函子可能对应于编程语言中的结构体构造函数和map函数,例如Rust语言中的Option类型。
  • Option类型的构造函数是let v = Option(x);,map函数是and_then。
  • 单子的定义为M = (F, unit, flatMap),Option类型具备F和unit,只需实现flatMap即可成为单子。
  • Option类型的flatMap是flatten,因此Option类型是一个单子。
  • 在函数式编程语言中,构造函数称为return或unit,flatMap称为bind。
➡️

继续阅读