描述什么是代数?

zer*_*ing -8 haskell functional-programming scala

在函数式编程世界中,当我想设计一个API时,我会遇到单词代数api.有人可以请说一下,在设计API的背景下,FP中的代数是什么.

哪些组件构建了代数api?法律,运营等.?

有一个单词原语,究竟是什么原语?请给我看一个例子.

Ram*_*gil 6

我认为你所指的是代数数据类型.

产品类别

常见的ADT类是产品类型.例如,"用户"可以被描述为"姓名","电子邮件地址"和"年龄"的组合:

case class User(name : String, email : String, age : Int)
Run Code Online (Sandbox Code Playgroud)

这称为"产品"类型,因为我们可以使用乘法计算可能不同用户的数量:

不同的用户数=(不同的名称数)x(不同的电子邮件数)x(不同的年龄数)

总和类型

另一个常见的ADT类是sum类型.例如,用户可以是普通用户,也可以是管理员:

sealed trait User

case class CommonUser(name : String) extends User

case class AdminUser(name : String, powers : Set[AdminPowers]) extends User
Run Code Online (Sandbox Code Playgroud)

这称为"总和"类型,因为我们可以使用添加来计算可能不同用户的数量:

不同的用户数=(不同的普通用户数)+(不同的管理员用户数)