Scala - может ли предложение «for-yield» ничего не давать для какого-то условия?

На языке Scala я хочу написать функцию, которая выдает нечетные числа в заданном диапазоне. Функция печатает журнал при повторении четных чисел. Первая версия функции:

def getOdds(N: Int): Traversable[Int] = {
  val list = new mutable.MutableList[Int]
  for (n <- 0 until N) {
    if (n % 2 == 1) {
      list += n
    } else {
      println("skip even number " + n)
    }
  }
  return list
}

Если я опущу печать журналов, реализация станет очень простой:

def getOddsWithoutPrint(N: Int) =
  for (n <- 0 until N if (n % 2 == 1)) yield n

Однако я не хочу пропустить часть регистрации. Как мне переписать первую версию более компактно? Было бы здорово, если бы его можно было переписать примерно так:

def IWantToDoSomethingSimilar(N: Int) =
  for (n <- 0 until N) if (n % 2 == 1) yield n else println("skip even number " + n)

Ответы на вопрос(4)

Ваш ответ на вопрос