2013-04-05 56 views
2

我有接受功能型两种功能倒车布尔返回类型:Int => Boolean功能型从功能

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

我想打电话从功能1函数2但不是只是F1调用它,我想用f1的逆来调用它。因此,如果f1类似于

(x: Int) => x > 4 

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

回答

3

你可以做这样的事情:

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