zer*_*ing -8 haskell functional-programming scala
在函数式编程世界中,当我想设计一个API时,我会遇到单词代数api.有人可以请说一下,在设计API的背景下,FP中的代数是什么.
哪些组件构建了代数api?法律,运营等.?
有一个单词原语,究竟是什么原语?请给我看一个例子.
我认为你所指的是代数数据类型.
产品类别
常见的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)
这称为"总和"类型,因为我们可以使用添加来计算可能不同用户的数量:
不同的用户数=(不同的普通用户数)+(不同的管理员用户数)