理解单子是自函子范畴上的幺半群(五)
💡
原文中文,约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。
➡️