Во-первых, не используйте null
в Scala (за исключением случаев взаимодействия с кодом Java), но используйте Options.Во-вторых, замените петли рекурсией.В-третьих, взгляните на богатый API функций Scala. Метод, который вы ищете, уже существует, как указано sepp2k .
.*
def findFirst[T](objects: List[T]):Option[T] = objects match {
case first :: rest if expensiveFunc( first ) != null => Some( first )
case _ :: rest => findFirst( rest )
case Nil => None
}