如何在 Scala 中利用 ADT 良好地组织业务 - Scala Cool
在用 Scala 做业务开发的时候,我们大都会用到 case class 以及「模式匹配」,本文将介绍在日常开发中如何利用 case class 模拟 ADT 去良好地组织业务。
ADT(代数数据类型)在计算机编程、特别是函数式编程与类型理论中,ADT 是一种 composite type(组合类型)。例如,一个类型由其它类型组合而成。两个常见的代数类型是 product(积)类型 (比如 tuples 和 records )和sum(和)类型,它也被称为 tagged unions 或 variant type。
这里简单介绍一下常见的两种代数类型 product(积)类型和 sum(和)类型
计数(Counting)在介绍两种常见代数类型之前我们先介绍一下 「计数」 的概念,方面理解后面所要介绍的内容。
为了将某个类型与我们熟悉的数字代数相关联,我们可以计算该类型有多少种取值,例如 Haskell中的Bool 类型:
1data Bool = true | false可以看到 Bool 类型有两种可能的取值,要么是 false, 要么是 true, 所以这里我们暂时将数字...阅读全文
ADT(代数数据类型)在计算机编程、特别是函数式编程与类型理论中,ADT 是一种 composite type(组合类型)。例如,一个类型由其它类型组合而成。两个常见的代数类型是 product(积)类型 (比如 tuples 和 records )和sum(和)类型,它也被称为 tagged unions 或 variant type。
这里简单介绍一下常见的两种代数类型 product(积)类型和 sum(和)类型
计数(Counting)在介绍两种常见代数类型之前我们先介绍一下 「计数」 的概念,方面理解后面所要介绍的内容。
为了将某个类型与我们熟悉的数字代数相关联,我们可以计算该类型有多少种取值,例如 Haskell中的Bool 类型:
1data Bool = true | false可以看到 Bool 类型有两种可能的取值,要么是 false, 要么是 true, 所以这里我们暂时将数字...阅读全文