3

重複の可能性:
Scala でブール関数の否定を使用/参照する方法は?

現在、コースラで Martin Odersky の Scala コースを受講しています。割り当ての 1 つで、(述語を表す) 関数の否定を処理する必要があります。

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)

いろいろ考えましたが、なかなか進みません。私は割り当ての問題の解決策を求めているわけではありません (私は名誉規定に固執していると思います)。

4

1 に答える 1

4

述語を引数として取り、別の述語を返す関数を書きたいとします。

def negate(pred: Int => Boolean): Int => Boolean =
  (x: Int) => !pred(x)
于 2012-10-03T16:05:48.490 に答える