use*_*318 4 functional-programming scala
所以假设我有一个函数需要一个带定义的Set Int => Boolean和一个f这样的函数:
def map(s: Set, f: Int => Int): Set = {}
现在我如何将此f应用于此集合的每个元素s.
def map(s: Set, f: Int => Int): Set = { (i: Int) => f(s(i)) }
Run Code Online (Sandbox Code Playgroud)
哪个是不正确的,因为in f(s(i)),'s(i)'返回一个布尔值,因此无法应用于f它.问题是我如何访问Set的每个元素并f在其上应用它?
这个问题是Coursera的Scala功能编程课程的一部分.
本课程的目标是帮助您理解功能模型,在这种情况下,Set如何由函数表示(称为该集的charasteristic函数).
而不是最终的解决方案,这里提示如何解决这个问题:
给定f: Int => Boolean定义您的集合的特征函数 ,以及xInt,if f(x) == true,然后x属于集合.现在,如果你有一个g:Int=>Int
想要在集合上映射的函数,你想要的是将该函数应用于你知道属于集合的元素:if (f(x)) then g(x).
尝试将这种想法应用于锻炼.