pra*_*wal 3 functional-programming scala higher-order-functions
我在课程中遵循"Scala中的函数式编程原理",在第二周,作业是关于"纯函数集"的,我们有,
type Set = Int => Boolean
Run Code Online (Sandbox Code Playgroud)
然后是一些功能
def union(s: Set, t: Set): Set = (element: Int) => s(element) || t(element)
Run Code Online (Sandbox Code Playgroud)
所以,当我这样做的时候,
val u = union(Set(1, 2, 3), Set(4, 5, 6))
Run Code Online (Sandbox Code Playgroud)
在scala控制台中,它给出了
u: Set = <\function1\>
Run Code Online (Sandbox Code Playgroud)
a)为什么它会返回一个函数?
b)当我这样做时contains(u, 6)它返回true但是我可以显示你的所有元素还是因为你是一个我不能的函数?
c)如何union(Set(1, 2, 3), Set(4, 5, 6))在没有任何迭代的情况下返回这两个集合中的所有元素?
a)为什么它会返回一个函数?
因为Set是一个功能.Int => Boolean意思是"一个接受Int并返回a 的功能Boolean".
b)当我这样做时
contains(u,6)它返回true但是我可以显示你的所有元素还是因为你是一个我不能的函数?
您无法显示所有元素,因为Set实际上并不"包含"元素.A Set是一个或多个返回true/false的测试的函数.
c)如何
union(Set(1,2,3),Set(4,5,6))在没有任何迭代的情况下返回这两个集合中的所有元素?
知道从给定值返回true的唯一方法Set是传递所有可能的值(或一些接受的近似值).在值Set将返回真,否则你会得到错误的.
注意:这仅适用Set于问题中定义的内容.SetScala标准库中的发现是一种不同的动物.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |