2013-04-05 49 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 (! _))