Scala 高阶函数详细信息

标签 scala higher-order-functions

我正在学习 Scala 高阶函数。我在学习an example那是一个类;有一种方法接收函数和值参数并返回值。该函数为 p: Tweet => Boolean,方法实现如下。我想知道p函数的实现在哪里。

class NonEmpty(elem: Tweet, left: TweetSet, right: TweetSet) extends TweetSet {
  def filterAcc(p: Tweet => Boolean, acc: TweetSet): TweetSet = {
    if (p(elem)) {
      left.filterAcc(p, acc.incl(elem))
      right.filterAcc(p, acc.incl(elem))  
    } else {
        left.filterAcc(p, acc)
        right.filterAcc(p, acc)
    }                    
}

最佳答案

I wonder to know where is the implementation of the p function

如果您在类定义中进一步深入,您将在 union 中看到 p 的实现之一。

def union(that: TweetSet): TweetSet = {
  this.filterAcc(elem => true, that)
}

对于高阶函数,方法的调用者负责提供他希望运行的函数的实现。您可以查看 Scala 集合库上的常见用例,例如 mapflatMapfilter 等。

关于Scala 高阶函数详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226312/

相关文章:

scala - Spark 数据帧 : operate on groups

scala - 在任务中运行任务并在 sbt 中评估其结果

找不到 Scala : value x when unpacking returned tuple

javascript - React.cloneElement : pass new children or copy props. child ?

javascript - 构建依赖于第三方脚本的组件

string - 高阶函数haskell

scala - 为什么 Akka 流循环没有在此图中结束?

scala - 以功能方式进行多个 API 调用

javascript - 高阶函数 Javascript

php - 在 PHP 中,过滤关联数组的数组