适当的Scala语法将高阶函数转换为匿名函数?

时间:2012-10-04 07:45:04

标签: scala functional-programming anonymous-function higher-order-functions

我想在下面的示例中消除inverse函数,只需在调用bar时直接创建一个匿名函数。任何人都可以建议正确的语法?我尝试了一些变化,但无法编译任何东西。

object Test {

  def foo(p: Int => Boolean): Boolean = {
    def inverse(p: Int => Boolean): Int => Boolean = {
      e: Int => !p(e)
    }

    bar(inverse(p))
  }

  def bar(p: Int => Boolean): Boolean = true

}

1 个答案:

答案 0 :(得分:12)

这应该有效

bar(!p(_))

stackoverflow说这个答案太短了。