2012-10-03 95 views
3

可能重複的否定:
How to use/refer to the negation of a boolean function in Scala?斯卡拉 - 謂語

我目前正在馬丁·奧德斯基的斯卡拉課程coursera。在其中一項任務中,我需要對一個函數的否定(代表一個謂詞)進行研究。

def fun1 (p: Int => Boolean): Boolean = { 
/* some code here */ 
} 

假設文字p: Int => Boolean功能代表了某種謂詞像x => x > 0

def fun2 (p: Int => Boolean): Boolean = { 
val x = fun1 (p) 
val y = ??? 
/* How can I call the negation of the predicate 'p' here? */ 
return x && y 
} 

例如,如果我稱之爲fun2fun2 (x => x > 0)

我給了很多心思,但我沒有取得任何進展。我沒有要求解決任何分配問題(我堅持榮譽代碼,我相信),但任何我在這裏失蹤的解釋都會有很大的幫助。

+2

看看這篇文章:http://stackoverflow.com/questions/12681616/how-to-use-refer-to-the-negation-of-a-boolean-function-in-scala –

回答

3

你想寫一個函數,它將一個謂詞作爲參數並返回另一個謂詞。 這裏是骨架,

def negate(pred: Int => Boolean): Int => Boolean = 
    (x: Int) => something 

看看你能不能找出什麼「東西」應該是。

+3

def否定(pred:Int => Boolean):Int => Boolean = (x:Int)=>!pred(x) – Raj

+0

希望我是正確的 – Raj

+0

你明白了。容易嗎? – user515430