从函数中反转布尔返回类型

时间:2013-04-05 21:23:55

标签: scala functional-programming

我有两个接受函数类型的函数:Int => Boolean函数类型

def myFunction1(f1: Int => Boolean) ...
def myFunction2(f2: Int => Boolean) ...

我想从function1调用function2,但不是只用f1调用它,我想用f1的反函数调用它。所以如果f1类似于

(x: Int) => x > 4

在运行时,即对于大于4的数字返回true。如果数字大于4,我希望反向返回false。在调用myFunction2之前是否可以反转f1?

2 个答案:

答案 0 :(得分:3)

你可以这样做:

def myFunction1(f1: Int => Boolean) =  myFunction2(!f1(_))

答案 1 :(得分:1)

def myFunction1(f1: Int => Boolean) =  myFunction2(f1 andThen (! _))