代数数据类型与范畴论在编程中的应用
1. 代数数据类型
在编程中,实现和类型(sum type)的另一种方式是使用密封对象层次结构。以下是一个示例:
sealed trait Breed { val name: String }
case object doberman extends Breed { val name = "Doberman Pinscher" }
case object yorkie extends Breed { val name = "Yorkshire Terrier" }
case object scottie extends Breed { val name = "Scottish Terrier" }
case object dane extends Breed { val name = "Great Dane" }
case object portie extends Breed { val name = "Portuguese Water Dog" }
当只需要带有索引的“标志”和可选的用户友好字符串时,可以使用枚举;而当需要携带更多状态信息时,则使用密封对象层次结构。
代数数据类型在数学中,代数由三个方面定义:
- 一组对象:这里的对象与面向对象编程中的对象概念不同,它们可以是数字或几乎任何东西。
- 一组操作:描述元素如何组合以创建新元素。
- 一组定律:定义操作与对象之间关系的规则。例如,对于数字,有结合律 (x + (y + z)) == ((x + y) + z) 。
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



