Scala 和编写 map 函数

标签 scala functional-programming

所以假设我有一个函数需要一个定义为 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)) }

这当然是不正确的,因为在 f(s(i)) , 's(i)' 返回一个 bool 值,因此不能应用 f在上面。问题是如何访问 Set 的每个元素并应用此 f在上面?

这个问题是 Coursera 的 Functional Programming with Scala 类(class)的一部分。

最佳答案

本类(class)的目标是帮助您理解函数模型,以及在这种情况下,如何用函数表示集合(称为该集合的特征函数)。

这里不是最终解决方案,而是有关如何推理此问题的提示:

给定特征函数 f: Int => Boolean定义您的集合和 x ,一个整数,如果 f(x) == true ,则 x 属于集合。现在,如果你有一个函数 g:Int=>Int 如果您想在集合上进行映射,您想要的是将该函数应用于您知道属于该集合的元素:if (f(x)) then g(x) .

尝试将这种想法应用到您的锻炼中。

关于Scala 和编写 map 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216958/

相关文章:

xml - Scala:将 xml 数据帧转换为 csv 文件

scala - 使用 .ivy2 缓存的副本作为 SBT 解析器源

haskell - Haskell 中的组合

Java 8 Streams 和 lambdas 保持严格的 FP

scala - 如何操作 Poly1 中的 FieldTypes?

scala - future Scala的 future

php - Web 开发人员可以使用哪种非面向对象语言来创建一次性桌面应用程序?

scala - 为什么constant() 解决方案比 "FP in Scala"5.8 中更简单的解决方案更有效?

scala - 关于 scala 类型推断的编译错误

syntax - 是否有函数式编程语言具有用于更改对象部分的语法糖?