1

以下のようなコードがあります。しかし、私はこの可変変数フラグを避けたいと思います。

どうすればこれを達成できますか?

  def map(s: Set, f: Int => Int): Set = (x: Int) =>  {
    var flag : Boolean = false
    for(i <- -bound to bound) {
      if(s(i) && f(i) == x){
        flag = true
      }
    }
    flag
  }
4

2 に答える 2

5

この簡単なテストが必要だと思います。

(-bound to bound) exists {i => s(i) && f(i) == x}
于 2012-09-27T07:19:51.963 に答える
3

exists収集方法を使用します。このexistsメソッドはtrue、指定された条件がコレクション内の少なくとも1つの要素に対して真である場合、およびfalseそれ以外の場合に戻ります。

def map(s: Set[Int], f: Int => Int): (Int => Boolean) =
  (x: Int) => {
    (-bound to bound).exists(i => s(i) && f(i) == x)
  }
于 2012-09-27T07:19:45.000 に答える