foldRight

trait Collection[A] {
  def foldRight[B](z: B)(op: (A, B) => B): B
}

foldRight aplica, da direita para a esquerda, o operador binário op a cada elemento e o resultado da anterior op. A primeira vez que op é aplicada, ela é alimentada com o valor inicial z.

Em coleções vazias, essa função nem aplica op e o valor inicial z é retornado diretamente.